【发布时间】:2019-04-02 18:01:50
【问题描述】:
我有一个 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:
感谢您的帮助
【问题讨论】:
-
尝试在卷路径的开头删除
.。/是 docker 上下文根目录 - 即您运行docker-compose build命令的目录。 -
如果我把点放在开头,文件夹将不再在主机端创建。以点开头,docker 在主机端创建了供应商文件夹,但也删除了容器端的所有文件和文件夹。
标签: docker docker-compose