直接看docker-compose.yml配置文件
此配置文件是在之前写过的一篇Docker安装配置Nginx、Mysql、PHP、Redis容器服务,的基础上扩展的。
version: '3'
networks:
backend:
driver: bridge
# 定义四个服务nginx,php,mysql,redis
services:
nginx:
# 依赖php服务,意味着在启动nginx之前先启动php
depends_on:
- php-fpm
# nginx镜像的路径
image: registry.cn-shenzhen.aliyuncs.com/yxyong/nginx
volumes:
- ./website:/var/www:cached
- ./logs/nginx:/var/log/nginx
- ./conf/nginx/sites:/etc/nginx/sites-available
- ./conf/nginx/ssl:/etc/nginx/ssl
# nginx意外退出时自动重启
restart: always
# 映射80和443端口
ports:
- "80:80"
- "443:443"
# 容器名称
container_name: nginx
networks:
- backend
php-fpm:
depends_on:
- mysql
- redis
image: registry.cn-shenzhen.aliyuncs.com/yxyong/php
restart: always
volumes:
#- ./conf/php/php.ini:/usr/local/etc/php/php.ini
- ./website:/var/www:cached
container_name: php-fpm
networks:
- backend
mysql:
image: registry.cn-shenzhen.aliyuncs.com/yxyong/mysql
volumes:
- ./conf/mysql/my.cnf:/etc/mysql/conf.d/my.cnf
- ./data/mysql:/var/lib/mysql
restart: always
# 设置MYSQL_ROOT_PASSWORD环境变量,这里是设置mysql的root密码。这里为wanphp@1314。
environment:
MYSQL_ROOT_PASSWORD: wanphp@1314
TZ: PRC
ports:
- "13306:3306"
container_name: mysql
networks:
- backend
redis:
image: registry.cn-shenzhen.aliyuncs.com/yxyong/redis
volumes:
# - ./conf/redis/redis.conf:/usr/local/etc/redis.conf
- ./data/redis:/data
restart: always
ports:
- "16379:6379"
container_name: redis
networks:
- backend
composer:
image: composer:latest
command: ["composer", "install" ] #update
container_name: composer
volumes:
- ./website/itempath:/app
默认情况下,composer镜像会执行/app文件夹中的命令,所以我们将要intsall或update项目目录映射到composer容器内部的/app目录
当composer容器启动时,它执行“ composer install”命令,然后退出。
如果需要更新,将docker-compose.yml配置文件中的
command: ["composer", "install" ]
改成
command: ["composer", "update" ]
在docker-compose.yml配置文件目录中执行docker-compose up -d
更新依赖包。
以后可以使用docker-compose restart composer
或docker restart composer
更新依赖包。
docker logs composer
查看依赖包更新情况。
参与原文:https://hackernoon.com/get-composer-to-run-on-docker-container-a-how-to-guide-y86g36z7
网友评论