Когда docker-compose вызывает Dockerfile?

Я немного запутался, у меня есть файл docker-compose, в который я пытаюсь установить apache и mariadb ...

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"

Все работает нормально, пока я не попробую переписать URL в Apache и не получу это ...

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 <[email protected]>

RUN a2enmod rewrite

ADD . /var/www/html

Но это не решает проблемы. Фактически, даже когда я добавляю в файл такую ​​ошибку ...

FROM php:5.6-apache

bleurrrrgggghhh

MAINTAINER Raphael Mäder <[email protected]>

RUN a2enmod rewrite

ADD . /var/www/html

А потом звоните docker-compose, все загружается нормально. Итак, я знаю, что файл докера не может быть вызван. Даже когда я удаляю образ с docker-compose rm и перезапускаю его, все равно ничего.

Не понимаю, как мне запустить команду Dockerfile?

когда вы говорите image: в своем файле композиции, Dockerfile никогда не используется, он использует только изображение, вам нужно изменить его на build: . или что-то подобное.

Mazel Tov 12.04.2018 23:17

Проблема не в файле docker-compose, поскольку он создает указанный вами образ. Вам нужно создавать dockerfile только тогда, когда вы хотите создать свой собственный образ. Нет необходимости писать Dockerfile, если вы используете образ из публичного репо. Ошибка в вашем правиле перезаписи, попробуйте исправить ее там

Tara Prasad Gurung 13.04.2018 12:22
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Kubernetes - это портативная, расширяемая платформа с открытым исходным кодом для управления контейнерными рабочими нагрузками и сервисами, которая...
Как создать PHP Image с нуля
Как создать PHP Image с нуля
Сегодня мы создадим PHP Image from Scratch для того, чтобы легко развернуть базовые PHP-приложения. Пожалуйста, имейте в виду, что это разработка для...
1
2
610
1

Ответы 1

После того, как образ будет построен, он не будет построен снова, если вы явно не хотите, чтобы он был перестроен. С помощью docker-compose вы передаете --build, чтобы принудительно перестроить образ.

docker-compose up --build web

Другие вопросы по теме