Мне удалось успешно докровать мое приложение для веб-сервера. Теперь я хочу изучить больше, развернув их непосредственно на раб-мезос через марафон. Я могу развернуть контейнер докера в марафон в двух разных подходах: либо в командной строке, либо через веб-интерфейс марафона. Оба работали для меня, но вызов - это когда я пытаюсь развернуть образ докеры, марафон часто перезапускает задание, а на странице пользовательского интерфейса mesos я вижу много готовых заданий для одного и того же контейнера. Ближе к 10 задачам в минуту. Который не ожидается, я верю.частые перезагрузки - контейнеры-докеры в марафоне/мезо
Мой файл докер выглядит следующим образом:
FROM ubuntu:latest
#---------- file Author/Maintainer
MAINTAINER "abc"
#---------- update the repository sources list
RUN apt-get update && apt-get install -y \
apache2 \
curl \
openssl \
php5 \
php5-mcrypt \
unzip
#--------- installing composer
RUN curl -sS https://getcomposer.org/installer | php
RUN mv composer.phar /usr/local/bin/composer
RUN a2enmod rewrite
#--------- modifying the 000default file
COPY ./ /var/www/airavata-php-gateway
WORKDIR /etc/apache2/sites-available/
RUN sed -i 's/<\/VirtualHost>/<Directory "\/var\/www"> \n AllowOverride All \n <\/Directory> \n <\/VirtualHost>/g' 000-default.conf
RUN sed -i 's/DocumentRoot \/var\/www\/html/DocumentRoot \/var\/www/g' 000-default.conf
WORKDIR /etc/php5/mods-available/
RUN sed -i 's/extension=mcrypt.so/extension=\/usr\/lib\/php5\/20121212\/mcrypt.so/g' mcrypt.ini
WORKDIR /var/www/airavata-php-gateway/
RUN php5enmod mcrypt
#--------- making storage folder writable
RUN chmod -R 777 /var/www/airavata-php-gateway/app/storage
#-------- starting command
CMD ["sh", "-c", "sh pga-setup.sh ; service apache2 restart ; /bin/bash"]
#--------- exposing apache to default port
EXPOSE 80
Теперь я невежествен, как решить эту проблему, любое руководство будет высоко оценен. Thanks
Спасибо Dharmit, Да, когда я запускаю контейнер для докеров без марафона, он работает отлично, и он остается как длинный контейнер даже в отдельном режиме. Итак, как вы сказали, проблема связана с разделом CMD. Я добавил «/ bin/bash», чтобы сделать его длинным контейнером, который каким-то образом не работает с мезосом, поэтому я добавил бесконечное время (не занятое ожидание, просто сон для состояния) на переднем плане, который держит мой докер контейнер жив и этот трюк работает. Проблема с частым перезапуском заключалась в том, что между одним контейнером умирает, а другой запускается, мой веб-сервер становится недоступным. – psaha4
BTW Dharmit Можете ли вы рассказать мне, как вы использовали марафон для запуска докера? это с помощью командной строки или пользовательского интерфейса марафона? – psaha4
@ psaha4: Я использую командную строку. Я создаю файл json и использую curl, чтобы отправить его в конечную точку '/ v2/apps' в Marathon. Решение loop while, хотя и делает трюк, не выглядит элегантным решением. Если вам понадобится каждый раз выполнять 'sh pga-setup.sh', почему бы не добавить его в оператор' RUN' в вашем файле Docker? – Dharmit