добавление образа командной докеры

Я построил образ, используя следующие шаги:

скачать пакет администратора

wget https://www.adminer.org/static/download/4.2.4/adminer-4.2.4-en.php

mv adminer-4.2.4-en.php adminer.php

создать докер-файл

vi докерфайл

FROM ubuntu
RUN apt-get -y install apache2 php5 php5-curl php5-cli php5-mysql php5-gd mysql-client mysql-server
RUN apt-get -y install postgresql postgresql-contrib
RUN apt-get -y install php5-pgsql
COPY adminer.php /var/www/html/
RUN chmod -R 777 /var/www/html/

построить и запустить

сборка докера -t shantanuo/adminer1 .

docker run -i -t --rm -p 80:80 --name adminer1 shantanuo/adminer1


Мне нужно запустить эту команду, чтобы запустить apache, как только я окажусь внутри контейнера.

запуск службы sudo apache2

Как включить эту команду в dockerfile? (Сбой сборки после добавления CMD для этой цели.)

Есть ли другой (лучший) способ установки пакета adminer.php?

Можно ли уменьшить размер этого изображения?


person shantanuo    schedule 28.02.2016    source источник
comment
Хитрость заключается в том, чтобы запустить apache2 в режиме без демона, используя что-то вроде CMD ["/usr/sbin/apache2 -D FOREGROUND"], или начать с образа докера Apache, такого как https://hub.docker.com/_/httpd/ вместо базового образа ubuntu.   -  person Xiongbing Jin    schedule 28.02.2016


Ответы (1)


Что вы делаете, так это открываете интерактивный сеанс bash и пытаетесь запустить сервер.

Было бы лучше, если бы вы запустили тот же образ в автономном режиме (-d) вместо -it и разрешили запуску apache.
Для этого, как указано в комментарии, вам нужно запустить FROM httpd:2.4, который:

Еще лучше было бы использовать образ докера PHP:

FROM php:5.6-apache

Таким образом, вам даже не нужно устанавливать apache или php. Вы просто копируете свое php-приложение.

Затем, если вам нужно, вы все равно можете открыть сеанс bash с помощью:

docker exec -it <yourContainer> bash
person VonC    schedule 28.02.2016
comment
Я изменил базовое изображение. Но теперь я не могу включить необходимые пакеты. - person shantanuo; 01.03.2016
comment
@shantanuo какую ошибку вы получаете? Не забывайте, что с этим новым базовым образом вам больше не нужно включать пакет php. - person VonC; 01.03.2016
comment
Изображение построено правильно. Но я получаю сообщение об ошибке в приложении: ни одно из поддерживаемых расширений PHP (PgSQL, PDO_PgSQL) недоступно. - person shantanuo; 01.03.2016
comment
@shantanuo, если бы вы были на машине, на которой установлен php, какую команду вы бы набрали, чтобы установить эти расширения? Добавьте эти команды в качестве директив RUN в свой Dockerfile. - person VonC; 01.03.2016
comment
apt-get install php5-pgsql работает с базовым образом Ubuntu, но не работает с php:5.6-apache - person shantanuo; 01.03.2016
comment
@shantanuo что за сообщение об ошибке? И вы сначала сделали обновление apt-get? - person VonC; 01.03.2016