gpt4 book ai didi

docker-compose volumes_from 等效于版本 3

转载 作者:IT老高 更新时间:2023-10-28 12:35:37 50 4
gpt4 key购买 nike

我正在尝试使用 docker compose 创建 Nginx/PHP FPM 设置,但我遇到了版本 3 卷语法/更改的问题。

我的Dockerfile:

FROM php:7-fpm
VOLUME /var/www/html

我的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:

当我将 index.php 文件添加到 ./html 中时,我可以转到 http://localhost:8888 来查看它,但任何静态文件(如 CSS)都会返回 404,因为 Nginx 无法在其容器中找到这些文件(/var/www/html 在 nginx 容器上为空)。使用版本 3 docker compose 文件不再有 volumes_from,这基本上是我想要复制的内容。

我怎样才能让它与版本 3 一起使用?

最佳答案

要使用“命名卷”在容器之间共享文件,您需要定义

1) volumes: yml 文件顶层部分并定义卷名

volumes:
php:

2)像你一样在第一个容器上定义 volume 部分(共享将安装在哪里)

web:
volumes:
- php:/var/www/html #<container_name>:<mount_point>

3) 在第二个容器上定义 volume 部分(共享将从装载)

php:
volumes:
- php:/var/www/html

4) (可选) 如果您需要在主机上存储卷数据,您可以使用 local-persist docker 插件。您可以指定 docker 卷驱动程序和存储数据的路径。

volumes:
php:
driver: local-persist
driver_opts:
mountpoint: /path/on/host/machine/

在您的情况下,您忘记为 php 容器定义卷名。直接替换

  php:
build: .
volumes:
- ./html:/var/www/html

  php:
build: .
volumes:
- php:/var/www/html

并使用 Local Persist Docker 插件

关于docker-compose volumes_from 等效于版本 3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42232051/

50 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com