【问题标题】:Command docker-compose (re)build does not build fresh instance of container命令 docker-compose (re)build 不会构建容器的新实例
【发布时间】:2019-09-26 22:04:51
【问题描述】:

我用这样的东西创建了./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 appdocker-compose build --force-rm --no-cache app 的工作方式相同。安装一次的包仍然存在,我的 Dockerfile 的命令在构建过程中没有任何意义。

所以我有两个问题:

1) 如何从头开始构建我的应用容器的全新干净版本?

2) 如果docker-compose builddocker-compose build --force-rm 不构建新镜像,它们的作用是什么?

【问题讨论】:

    标签: php apache docker docker-compose


    【解决方案1】:

    尝试使用以下命令强制构建:

    docker-compose up -d --force-recreate
    

    或在构建之前删除所有内容:

    docker-compose rm
    docker image prune
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-10-10
      • 1970-01-01
      • 1970-01-01
      • 2016-05-25
      • 1970-01-01
      • 2016-05-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多