docker-compose何时调用Dockerfile?

时间:2018-04-12 17:24:39

标签: docker docker-compose

我有点困惑,我有一个docker-compose文件,我正在尝试安装apachemariadb ...

web:
   image: php:5.6-apache
   volumes:
        - ./:/var/www/html/
   environment:
     - ALLOW_OVERRIDE=true
   ports:
     - "80:80"
   links:
     - db


db:
  image: mariadb
  restart: always
  volumes:
    - ./docker/db:/var/lib/mysql
  environment:
    MYSQL_ROOT_PASSWORD: root
    MYSQL_USER: admin
    MYSQL_PASSWORD: test
    MYSQL_DATABASE: database
  ports:
    - "8889:3306"

一切正常,直到我尝试在Apache中进行一些URL重写,我得到了这个......

web_1  | [Thu Apr 12 16:55:31.646473 2018] [core:alert] [pid 18] [client 172.17.0.1:34330] /var/www/html/applications/.htaccess: Invalid command 'RewriteEngine', perhaps misspelled or defined by a module not included in the server configuration

所以我按照一些在线说明添加Dockerfile和...

FROM php:5.6-apache

MAINTAINER Raphael Mäder <ra@mader.com>

RUN a2enmod rewrite

ADD . /var/www/html

但它无法解决问题。事实上,即使我在这样的文件中添加错误......

FROM php:5.6-apache

bleurrrrgggghhh

MAINTAINER Raphael Mäder <ra@mader.com>

RUN a2enmod rewrite

ADD . /var/www/html

然后拨打docker-compose一切都很好。所以我知道无法调用docker文件。即使我用docker-compose rm删除图像并仍然重新启动它。

我对如何运行得到Dockerfile命令的工作感到困惑吗?

1 个答案:

答案 0 :(得分:0)

构建图像后,除非您明确希望重建图像,否则不会再次构建图像​​。使用docker-compose,您可以传递--build以强制重建图像。

docker-compose up --build web