我想從dockerfile構建drupal,並在容器目錄 -/var/www/html/sites/all/modules中使用該dockerfile在drupal中安裝模塊。 但是當我通過docker-compose構建dockerfile時,它會正確提取.. 只要我執行docker-compose up,文件就消失了,但卷已映射。 請看兩者的搬運工-撰寫和dockerfiledocker-compose文件刪除由容器目錄中的dockerfile提取的文件
DockerFile
FROM drupal:7
RUN rm /bin/sh && ln -s /bin/bash /bin/sh
ENV DRUPAL_VERSION 7.36
ENV DRUPAL_MD5 98e1f62c11a5dc5f9481935eefc814c5
ADD . /var/www/html/sites/all/modules
WORKDIR /var/www/html
RUN chown -R www-data:www-data sites
WORKDIR /var/www/html/sites/all/modules
# Install drupal-chat
ADD "http://ftp.drupal.org/files/projects/{drupal-module}.gz {drupal-module}.tar.gz"
RUN tar xzvf {drupal-module} \
&& rm {drupal-module} \
搬運工-撰寫文件
# PHP Web Server
version: '2'
drupal_box:
build: .
ports:
- "3500:80"
external_links:
- docker_mysqldb_1
volumes:
- ~/Desktop/mydockerbuild/drupal/modules:/var/www/html/sites/all/modules
- ~/Desktop/mydockerbuild:/var/log/apache2
networks:
- default
- docker_default
environment:
MYSQL_USER: root
MYSQL_PASSWORD: root
MYSQL_DATABASE: drupal
restart: always
#entrypoint: ./Dockerfile
networks:
docker_default:
external: true
執行:
sudo docker-compose build
sudo docker-compose up
上執行兩個指令的上述 - 容器中的目錄不具有{drupal-module文件夾},但是我發現它在控制檯的目錄中成功解壓縮(由於dockerfile中tar命令中的xzvf)。 但這可以幫助我映射主機目錄和容器目錄,添加或刪除的文件可以在虛擬和本地中看到。
但是一旦我刪除了第一個卷的映射(即〜/ Desktop ...),模塊就會在目錄中被提取出來,但映射還沒有完成。
我的主要目標是提取/ var/www/html/sites/all/modules中的{drupal-module}文件夾,並將相同的文件夾映射到主機目錄。
請幫忙!
你不能在同一個目錄下執行這兩個操作。已安裝的主機卷始終會覆蓋容器中的內容。 – Matt
那麼有什麼替代選擇,即如何從主機訪問帶有drupal_module文件夾的modules目錄? –
好的!我用命名卷完成了! –