我正在尝试使用docker compose创建Nginx/PHP FPM设置,并且遇到版本3卷语法/更改的问题.
我的Dockerfile
:
FROM php:7-fpm
VOLUME /var/www/html
Run Code Online (Sandbox Code Playgroud)
我的docker-compose.yml
:
version: "3"
services:
php:
build: .
volumes:
- ./html:/var/www/html
web:
image: nginx
links:
- php
ports:
- "8888:80"
volumes:
- php:/var/www/html
- ./default.conf:/etc/nginx/conf.d/default.conf
volumes:
php:
Run Code Online (Sandbox Code Playgroud)
当我添加一个index.php
文件时./html
,我可以通过访问http:// localhost:8888来查看,但是任何静态文件(如CSS)都返回404,因为Nginx无法在其容器中找到它们(/var/www/html
在nginx容器上为空).使用版本3 docker compose文件不再具有volumes_from
,这基本上就是我想要复制的内容.
如何让它与版本3一起使用?
我看到了码头组合模式,但我很困惑.制作组合容器的最佳方法是什么.我什么时候应该使用link
,或者volumes_from
.什么时候应该使用volumes_from
,volumes
app:
image: someimage
link:
- db // data volume container name
db:
image: mysql
volumes_from:
- data // data volume name
data:
image: someimage
volumes:
- {host data}:{guest data}
Run Code Online (Sandbox Code Playgroud)
app:
image: someimage
link:
- db // data volume container name
db:
image: mysql
volumes:
- data // data file name
Run Code Online (Sandbox Code Playgroud)
应用
app:
image: someimage
volumes_from:
- service // service container name
service:
image: mysql
volumes_from:
- data …
Run Code Online (Sandbox Code Playgroud) 我想知道以下配置的等价物,以适应docker-composer.yml的第3版!volumes_from不再有效所以我应该跳过数据卷并将其替换为顶级卷?
version: '2'
services:
php:
build: ./docker-files/php-fpm/.
volumes_from:
- data
working_dir: /code
links:
- mysql
nginx:
image: nginx:latest
ports:
- "80:80"
volumes:
- ./nginx/default.conf:/etc/nginx/conf.d/default.conf
volumes_from:
- data
links:
- php
data:
image: tianon/true
volumes:
- .:/code
Run Code Online (Sandbox Code Playgroud)