Команда docker-compose (re) build не создает свежий экземпляр контейнера - PullRequest
1 голос
/ 27 сентября 2019

Я создал ./docker/app/Dockerfile с помощью sth следующим образом:

FROM php:7.3-apache
RUN a2enmod rewrite
RUN docker-php-ext-install pdo_mysql && docker-php-ext-enable pdo_mysql
(...)

Мой docker-compose:

  app:
    build: './docker/app/'
    image: php:7.3-apache
    ports:
      - 80:80
    volumes:
    (...)

Я пытаюсь создать чистый экземпляр моего контейнера.Мне бы хотелось, чтобы это выглядело как первая сборка (я хочу проверить, в порядке ли мой Dockerfile и будут ли установлены все необходимые пакеты).Но после выполнения команды: docker-compose build app я вижу предупреждения вроде:

Module rewrite already enabled
warning: pdo_mysql (pdo_mysql.so) is already loaded!

Команды docker-compose build --force-rm app и docker-compose build --force-rm --no-cache app работают одинаково.Установленные пакеты по-прежнему сохраняются, и команды моего Dockerfile не имеют смысла во время сборки.

Итак, у меня есть 2 вопроса:

1) Как создать новую чистую версию контейнера приложения с нуля?

2) Для чего нужны команды docker-compose build и docker-compose build --force-rm, если они не создают новый образ?

1 Ответ

0 голосов
/ 27 сентября 2019

попытайтесь восстановить сборку, используя:

docker-compose up -d --force-recreate

или удалите все перед сборкой:

docker-compose rm
docker image prune
...