docker-compose建立lnmp環境
阿新 • • 發佈:2021-12-10
version: "3.8" services: nginx: container_name: "nginx" image: nginx:latest #重啟策略: #no,預設策略,在容器退出時,不重啟容器; #on-failure,在容器非正常退出時(退出狀態非0),才會重啟容器 #on-failure:3,在容器非正常退出時重啟容器,最多重啟3次 #always,在容器退出時,總是重啟容器 #unless-stopped,在容器退出時總是重啟容器,但是不考慮在Docker守護程序啟動時就已經停止了的容器 #埠對映(宿主機8080->nginx容器80,可以對映多個,比如443埠) ports: - "80:80" - "443:443" environment: - TZ=Asia/Shanghai #資料卷掛載 volumes: - "/usr/local/nginx/conf.d:/etc/nginx/conf.d" - "/usr/local/nginx/nginx.conf:/etc/nginx/nginx.conf" - "/usr/local/nginx/log:/var/log/nginx" - "/usr/local/nginx/html:/usr/share/nginx/html" php: container_name: "php7.3" # 注意,在version 1裡同時使用image和build是不允許的,version 2則可以,如果同時指定了兩者,會將build出來的映象打上名為image標籤。 build: ./php-extension image: php7.3-app ports: - "9000:9000" volumes: - "/home/www/phpProject:/var/www/html" - "/usr/local/php7.3/etc:/usr/local/etc" - "/usr/local/php7.3/log/:/var/log/php/" stdin_open: true tty: true #links: # - "mysql" # 設定時區 environment: - TZ=Asia/Shanghai mysql: container_name: "mysql8" image: mysql:8 #mysql的埠 ports: - "3306:3306" #資料卷掛載設定 volumes: - "/usr/local/mysql8/data:/var/lib/mysql" - "/usr/local/mysql8/etc:/etc/mysql" - "/usr/local/mysql8/logs:/data/mysql/logs" environment: - TZ=Asia/Shanghai # 設定時區 #設定mysql的密碼 - MYSQL_ROOT_PASSWORD=123456 redis: container_name: "redis" image: redis ports: - "6379:6379" volumes: - "/usr/local/redis/etc:/usr/local/etc/redis" - "/usr/local/redis/data:/data" command: #執行命令(設定密碼和持久化) redis-server /usr/local/etc/redis/redis.conf --requirepass 123456 --appendonly yes # redis-server /usr/local/etc/redis/redis.conf environment: - TZ=Asia/Shanghai # 設定時區 networks: default: name: mynet
在根目錄下建立./php-extension/Dockerfile
FROM php:7.3-fpm # 安裝 php 擴充套件 RUN sed -i "s@http://deb.debian.org@http://mirrors.aliyun.com@g" /etc/apt/sources.list && rm -Rf /var/lib/apt/lists/* && cat /etc/apt/sources.list RUN apt-get update -y RUN docker-php-ext-install -j$(nproc) mysqli pdo_mysql shmop iconv sockets calendar RUN apt-get install -y --no-install-recommends libfreetype6-dev libjpeg62-turbo-dev libpng-dev \ && rm -r /var/lib/apt/lists/* \ && docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \ && docker-php-ext-install -j$(nproc) gd \ && pecl install redis swoole \ && rm -rf /tmp/pear \ && docker-php-ext-enable redis swoole \ && apt-get clean && rm -rf /var/cache/apt/*