我用这样的方式创建了./docker/app/Dockerfile
:
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
不建立新映像,它们是做什么用的?
答案 0 :(得分:1)
尝试使用以下方法强制构建:
docker-compose up -d --force-recreate
或在构建之前删除所有内容:
docker-compose rm
docker image prune