Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
system:dockerfile [2024/05/02 00:47] – [Dockerfile] mirocowsystem:dockerfile [2024/05/02 19:24] (текущий) mirocow
Строка 47: Строка 47:
 === endpoint === === endpoint ===
  
 +===== Описание =====
 +
 +  * FROM — указывает название образа (image), который будет взят за основу.
 +  * ENV — устанавливает переменную среды
 +  * RUN — запустить команду в контейнере (все команды исполняются с полными правами в пределах контейнера)
 +  * ADD — добавить файл в контейнер
 +  * VOLUME — указать монтируемые директории (их можно монтировать на хост машину или на другие контейнеры)
 +  * EXPOSE — указать транслируемые порты (их можно транслировать на хост машину или на другие контейнеры)
 +  * CMD — запустить процесс (это и будет процесс, вокруг которого построен контейнер)
 +
 +<code bash>
 +# Используем за основу контейнера Ubuntu 14.04 LTS
 +FROM ubuntu:14.04
 +# Переключаем Ubuntu в неинтерактивный режим — чтобы избежать лишних запросов
 +ENV DEBIAN_FRONTEND noninteractive 
 +# Устанавливаем локаль
 +RUN locale-gen ru_RU.UTF-8 && dpkg-reconfigure locales 
 +
 +# Добавляем необходимые репозитарии и устанавливаем пакеты
 +RUN apt-get install -y software-properties-common
 +RUN add-apt-repository -y ppa:ondrej/php5-5.6
 +RUN add-apt-repository -y ppa:nginx/stable
 +RUN sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 4F4EA0AAE5267A6C
 +RUN apt-get update
 +RUN apt-get upgrade -y
 +RUN apt-get install -y wget curl php5-fpm php5-mysql php5-gd php5-curl php-pear php-apc php5-mcrypt php5-imagick php5-memcache supervisor nginx
 +
 +# Добавляем описание виртуального хоста
 +ADD astgo.ru /etc/nginx/sites-enabled/astgo.ru 
 +# Отключаем режим демона для Nginx (т.к. запускать будем сами) 
 +RUN echo "\ndaemon off;" >> /etc/nginx/nginx.conf 
 +# Отключаем режим демона для php-fpm
 +RUN sed -i -e "s/;daemonize\s*=\s*yes/daemonize = no/g" /etc/php5/fpm/php-fpm.conf 
 +# Добавляем конфиг supervisor (описание процессов, которые мы хотим видеть запущенными на этом контейнере)
 +ADD supervisord.conf /etc/supervisor/conf.d/supervisord.conf 
 +
 +# Объявляем, какие директории мы будем подключать
 +VOLUME ["/var/www"
 +# Объявляем, какой порт этот контейнер будет транслировать
 +EXPOSE 80 
 +# Запускаем supervisor
 +CMD ["/usr/bin/supervisord"
 +</code>
  
 ====== Ссылки ====== ====== Ссылки ======
  
 {{topic>[docker]}} {{topic>[docker]}}