- Я создал изображение для своего приложения с apache, созданный из него контейнер работает отлично. Я могу видеть страницу на localhost. (Файл # 1: докер-compose.yml)
- я нажимаю изображение для докер HUB
я воссоздать контейнер с помощью другого (файл # 2: докер-Compose-prod.yml) для того же приложения, и это выход из сразу же без каких-либо ошибок, выходной контейнер был:Контейнер-докер из изображения, созданного сборкой: работает, но не работает с вытащенного изображения
модуля перезаписи уже включен HTTPD (PID 1) уже работает
Вот приложение служба описана в Докер-compose.ym л файл # 1, который я использовал для сборки:
app:
build: .
links:
- db
- memcache:memcached
- search
ports:
#- 8080:80 # when varnish enabled
- 80:80
restart: always
environment:
DB_HOST: db:3306
DB_PASSWORD: *****
SEARCH_HOST: search:9312
MEMCACHE_HOST: memcache:11211
Вот докер-Compose-prod.yml, файл # 2 я использовал для развертывания, который содержит проблемы:
app:
image: vendor/app
#restart: always
links:
- db
- memcache:memcached
- search
ports:
#- 8080:80 # when varnish enabled
- 80:80
environment:
DB_HOST: db:3306
DB_PASSWORD: *****
SEARCH_HOST: search:9312
MEMCACHE_HOST: memcache:11211
#networks:
#- proxy
#- backend
Контейнеры следующих услуг являются всегда и работает:
- db
- memcache:memcached
- search
Некоторые детали:
Я бегу Докер-compose.yml (файл # 1) из внутри каталога приложений:
/home/user/app1$ docker-compose up -d
и второй файл из другой директории
/home/user/app2$ docker-compose -f docker-compose-prod.yml up -d
Вот Dockerfile:
FROM ubuntu:trusty
MAINTAINER vendor
# Install base packages
RUN apt-get update && \
DEBIAN_FRONTEND=noninteractive apt-get -yq install \
curl \
apache2 \
libapache2-mod-php5 \
php5-mysql \
php5-mcrypt \
php5-gd \
php5-curl \
php-pear \
php5-memcache \
php-apc && \
rm -rf /var/lib/apt/lists/*
#ENV ALLOW_OVERRIDE **False**
RUN /usr/sbin/php5enmod mcrypt
RUN echo "ServerName localhost" >> /etc/apache2/apache2.conf && \
sed -i "s/variables_order.*/variables_order = \"EGPCS\"/g" /etc/php5/apache2/php.ini
# Add image configuration and scripts
ADD run.sh /run.sh
RUN chmod 755 /*.sh
# Configure /app folder with sample app
RUN mkdir -p /app && rm -fr /var/www/html && ln -s /app /var/www/html
WORKDIR /app
ADD . /app
RUN chmod 0777 -R /var/www/html/app/tmp
RUN ln -sf /dev/stderr /var/www/html/app/tmp/logs/error.log
RUN ln -sf /dev/stdout /var/www/html/app/tmp/logs/debug.log
RUN chown www-data:www-data /app -R
# should not be run inside container
#RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
#RUN /usr/local/bin/composer install
#RUN php vendor/bin/phinx migrate
EXPOSE 80
CMD ["/run.sh"]
И run.sh
#!/bin/bash
if [ "$ALLOW_OVERRIDE" = "**False**" ]; then
unset ALLOW_OVERRIDE
else
sed -i "s/AllowOverride None/AllowOverride All/g" /etc/apache2/apache2.conf
a2enmod rewrite
fi
source /etc/apache2/envvars
exec apache2 -D FOREGROUND
Можете ли вы показать мне, пожалуйста, Dockerfile и entrypoint .sh для изображения 'app'? –
@BukharovSergey Привет, добавил Dockerfile и run.sh entrypoint. –