[Docker] 一份基础的lnmp

82 阅读1分钟
# https://github.com/np4p/lightdock
# 教程 https://www.bilibili.com/video/BV17F411W7Fy/?spm_id_from=333.337.search-card.all.click&vd_source=b620a69473c31bfeacc5e3bc26991cb3
version: '3.5'

volumes:
  mysql:
    driver: ${VOLUMES_DRIVER}
  redis:
    driver: ${VOLUMES_DRIVER}

services:
  php-cli:
    build:
      context: ./php-cli
      args:
        - CLI_VERSION=${CLI_VERSION}
        - CHANGE_SOURCE=${CHANGE_SOURCE}
    environment:
      - TZ=${TIMEZONE}
    volumes:
      - ${CODE_PATH_HOST}:/var/www/
    depends_on:
      - mysql
      - redis
    tty: true
    restart: on-failure
  php-fpm:
    build:
      context: ./php-fpm
      args:
        - FPM_VERSION=${FPM_VERSION}
        - CHANGE_SOURCE=${CHANGE_SOURCE}
    environment:
      - TZ=${TIMEZONE}
    volumes:
      - ${CODE_PATH_HOST}:/var/www
    expose:
      - "9000"
    depends_on:
      - mysql
      - redis
    restart: on-failure
  mysql:
    build:
      context: ./mysql
      args:
        - MYSQL_VERSION=${MYSQL_VERSION}
    volumes:
      - ${DATA_PATH_HOST}/mysql:/var/lib/mysql
    ports:
      - "${MYSQL_PORT}:3306"
    environment:
      - MYSQL_DATABASE=${MYSQL_DATABASE}
      - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
      - MYSQL_USER=${MYSQL_USER}
      - MYSQL_PASSWORD=${MYSQL_PASSWORD}
      - TZ=${TIMEZONE}
    restart: on-failure
  redis:
    build:
      context: ./redis
      args:
        - REDIS_VERSION=${REDIS_VERSION}
    volumes:
      - ${DATA_PATH_HOST}/redis:/data
    environment:
      - TZ=${TIMEZONE}
    ports:
      - "${REDIS_PORT}:6379"
    restart: on-failure
  nginx:
    build:
      context: ./nginx
      args:
        - NGINX_VERSION=${NGINX_VERSION}
    environment:
      - TZ=${TIMEZONE}
    volumes:
      - ${CODE_PATH_HOST}:/var/www/
      - ${NGINX_SSL_PATH}:/etc/nginx/ssl
    ports:
      - "${NGINX_HTTP_PORT}:80"
      - "${NGINX_HTTPS_PORT}:443"
    depends_on:
      - php-fpm
    restart: on-failure
  
  nodejs:
    image: node:${NODE_VERSION}  # Specify the Node.js version here
    volumes:
      - ${CODE_PATH_HOST}:/var/www/
    working_dir: /var/www/web
    #command: pnpm start  # Change this to your Node.js start command
    ports:
      - "${NODE_PORT}:3000" 
    restart: on-failure