我有一个基于 docker 的系统,它包含三个容器:
1. The official PHP container, modified with some additional pear libs
2. mysql:5.7
3: alterrebe/postfix-relay (a postfix container)
官方 php 容器有一个卷链接到主机系统的代码存储库,理论上它应该允许我像在“本地”托管一样处理这个应用程序。
但是,每次系统启动时,我都必须运行
docker-compose stop && docker-compose up -d
为了查看我刚刚对系统所做的更改。我可能没有正确理解 Docker,这是设计使然,但是在每次代码更改后停止和启动容器会大大减慢开发速度。谁能告诉我我做错了什么(如果有的话)?提前致谢。
我的 docker-compose.yml 在下面(当然有变量和不隐藏的)
web:
build: .
links:
- mysql
- mailrelay
environment:
- HIDDEN_VAR=placeholder
- ABC_ENV=development
volumes:
- ./html/:/var/www/html/
ports:
- "0.0.0.0:80:80"
mysql:
image: mysql:5.7
environment:
- MYSQL_ROOT_PASSWORD=abcdefg
- MYSQL_DATABASE=thedatabase
volumes:
- .:/db/:ro
mailrelay:
hostname: mailrelay
image: alterrebe/postfix-relay
ports:
- "25:25"
environment:
- EXT_RELAY_HOST=relay.relay.com
- EXT_RELAY_PORT=25
- SMTP_LOGIN=CLASSIFIED
- SMTP_PASSWORD=ABCDEFGHIK
- ACCEPTED_NETWORKS=172.0.0.0/8
最佳答案
最终我才开始运行
docker stop {{ container name }} && docker start {{ container name }}
每次而不是 docker-compose。直接使用 Docker 而不是 docker-compose 非常快(< 1 秒而不是超过一分钟),所以它不再是一个大问题
关于Docker 卷停止同步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33766517/