Rob*_*Rob 41 docker docker-compose
我正在尝试使用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一起使用?
Buk*_*gey 30
使用"命名卷"在需要定义的容器之间共享文件
1)volumes:yml文件顶层的部分并定义卷名
volumes:
php:
Run Code Online (Sandbox Code Playgroud)
2)volume像你一样定义第一个容器上的部分(将挂载共享的位置)
web:
volumes:
- php:/var/www/html #<container_name>:<mount_point>
Run Code Online (Sandbox Code Playgroud)
3)volume在第二个容器上定义部分(共享将从中安装)
php:
volumes:
- php:/var/www/html
Run Code Online (Sandbox Code Playgroud)
4)(可选)如果需要在主机上存储卷数据,可以使用local-persist docker插件.您可以指定docker volume driver和存储数据的路径.
volumes:
php:
driver: local-persist
driver_opts:
mountpoint: /path/on/host/machine/
Run Code Online (Sandbox Code Playgroud)
在您的情况下,您忘记定义php容器的卷名称.只需更换
php:
build: .
volumes:
- ./html:/var/www/html
Run Code Online (Sandbox Code Playgroud)
至
php:
build: .
volumes:
- php:/var/www/html
Run Code Online (Sandbox Code Playgroud)
并使用Local Persist Docker插件
| 归档时间: |
|
| 查看次数: |
25476 次 |
| 最近记录: |