У меня есть файл docker-compose-staging.yml, который я использую для определения приложения PHP. Я определил контейнер объема данных (приложение), в котором живет мой код приложения, и делится с другими контейнерами с помощью volume_from.
докер-Compose-staging.yml:
version: '2'
services:
nginx:
build:
context: ./
dockerfile: docker/staging/nginx/Dockerfile
ports:
- 80:80
links:
- php
volumes_from:
- app
php:
build:
context: ./
dockerfile: docker/staging/php/Dockerfile
expose:
- 9000
volumes_from:
- app
app:
build:
context: ./
dockerfile: docker/staging/app/Dockerfile
volumes:
- /var/www/html
entrypoint: /bin/bash
Этот конкретный docker-compose-staging.yml используется для развертывания приложения в облачном провайдере (DigitalOcean), а в файле Docker для контейнера приложения есть команды COPY, которые копируют по папкам из локального каталога в том, который определен в конфигурации.
Докер/постановка/приложение/Dockerfile:
FROM php:7.1-fpm
COPY ./public /var/www/html/public
COPY ./code /var/www/html/code
Это работает, когда я сначала создаю и развертываю приложение. Код в моих общедоступных и кодовых каталогах присутствует и корректен на удаленном сервере. Я использую следующую команду:
docker-compose -f docker-compose-staging.yml up -d
Однако в следующий раз я попытаюсь добавить файл в свой локальный общий каталог, а затем запустите следующую команду, чтобы перестроить обновленный код:
docker-compose -f docker-compose-staging.yml build app
Результат этой перестройки показывает, что команды COPY были успешными:
Building app
Step 1 : FROM php:7.1-fpm
---> 6ed35665f88f
Step 2 : COPY ./public /var/www/html/public
---> 4df40d48e6a5
Removing intermediate container 7c0fbbb7f8b6
Step 3 : COPY ./code /var/www/html/code
---> 643d8745a479
Removing intermediate container cfb4f1a4f208
Successfully built 643d8745a479
Затем я развертываю с помощью:
docker-compose -f docker-compose-staging.yml up -d
Со следующим выходом:
Recreating docker_app_1
Recreating docker_php_1
Recreating docker_nginx_1
Однако при входе в удаленные контейнеры изменений файла нет.
Я относительно новичок в Docker, поэтому не уверен, не понял ли я какую-либо часть этого процесса! Любые рекомендации будут оценены.