gpt4 book ai didi

docker - docker-compose up后清空卷文件夹

转载 作者:行者123 更新时间:2023-12-02 21:09:40 25 4
gpt4 key购买 nike

我有一个dockerfile,可以从composer加载一些东西到容器上的供应商文件夹中。现在,我想将容器上的供应商文件夹与我的主机环境链接。如果我使用docker-compose up启动服务,则供应商文件夹为空。我该怎么做才能将数据保存在容器中?

这是我的dockerfile:

FROM php:7.3.3-apache-stretch
RUN apt-get update && \
apt-get install -y --no-install-recommends nano \
git \
openssh-server

RUN curl -s https://getcomposer.org/installer | php && \
echo "{}" > composer.json && \
php composer.phar require slim/slim "^3.0" && \
chown -R www-data. .

VOLUME /var/www/html/vendor

这是我的docker-compose.yml:
version: '3.2'
services:
slim:
build:
context: ./slim
ports:
- "1337:1337"
networks:
- backend
volumes:
- ./slim/vendor:/var/www/html/vendor
networks:
backend:

谢谢您的帮助

最佳答案

您看到的是预期的行为。

如果要填充供应商文件夹并在主机上可用,则必须在映射发生之后运行安装,而不是相反。

该命令:

curl -s https://getcomposer.org/installer | php && \
echo "{}" > composer.json && \
php composer.phar require slim/slim "^3.0" && \
chown -R www-data. .

应该成为您的ENTRYPOINT或CMD,以便在容器启动时(而不是在构建时)运行它。

我建议将这些命令放在安装脚本中并运行。它看起来更干净,更容易理解。

希望对您有所帮助,但是如果您需要更多信息,请告诉我。

关于docker - docker-compose up后清空卷文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55467929/

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