Dockerfile
- FROM — указывает название образа (image), который будет взят за основу.
- ENV — устанавливает переменную среды
- RUN — запустить команду в контейнере (все команды исполняются с полными правами в пределах контейнера)
- ADD — добавить файл в контейнер
- VOLUME — указать монтируемые директории (их можно монтировать на хост машину или на другие контейнеры)
- EXPOSE — указать транслируемые порты (их можно транслировать на хост машину или на другие контейнеры)
- CMD — запустить процесс (это и будет процесс, вокруг которого построен контейнер)
Подробнее: https://docs.docker.com/engine/userguide/eng-image/dockerfile_best-practices/
# Используем за основу контейнера 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 sudoapt-key adv--keyserver keyserver.ubuntu.com --recv-keys 4F4EA0AAE5267A6C RUN apt-get update RUN apt-get upgrade-y RUN apt-get install-ywget 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"]