Различия
Показаны различия между двумя версиями страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
system:dockerfile [2024/05/02 00:15] – mirocow | system:dockerfile [2024/05/02 19:24] (текущий) – mirocow | ||
---|---|---|---|
Строка 2: | Строка 2: | ||
====== Dockerfile ====== | ====== Dockerfile ====== | ||
+ | |||
+ | ===== Инструкции ===== | ||
+ | |||
* **RUN**: В основном используемый для создания образов и установки приложений и пакетов, | * **RUN**: В основном используемый для создания образов и установки приложений и пакетов, | ||
Строка 7: | Строка 10: | ||
* **ENTRYPOINT**: | * **ENTRYPOINT**: | ||
- | <note tip>В общем случае у вас должен быть Dockerfile CMD, а не Compose command:. Если не определить ни одной из них, то получите сообщение об ошибке.</ | + | <note tip> |
- | + | * В общем случае у вас должен быть Dockerfile CMD, а не Compose command:. Если не определить ни одной из них, то получите сообщение об ошибке. | |
- | <note tip> | + | * В идеале отдельно указывать исполяемый бинарник в ENTRYPOINT |
- | * Если во время выполнения | + | |
- | * Те же результаты будут, если использовать | + | |
</ | </ | ||
+ | |||
+ | ===== ENTRYPOINT / CMD ===== | ||
+ | |||
^ Режим | ^ Режим | ||
Строка 43: | Строка 47: | ||
=== endpoint === | === endpoint === | ||
+ | ===== Описание ===== | ||
+ | |||
+ | * FROM — указывает название образа (image), который будет взят за основу. | ||
+ | * ENV — устанавливает переменную среды | ||
+ | * RUN — запустить команду в контейнере (все команды исполняются с полными правами в пределах контейнера) | ||
+ | * ADD — добавить файл в контейнер | ||
+ | * VOLUME — указать монтируемые директории (их можно монтировать на хост машину или на другие контейнеры) | ||
+ | * EXPOSE — указать транслируемые порты (их можно транслировать на хост машину или на другие контейнеры) | ||
+ | * CMD — запустить процесс (это и будет процесс, | ||
+ | |||
+ | <code bash> | ||
+ | # Используем за основу контейнера Ubuntu 14.04 LTS | ||
+ | FROM ubuntu: | ||
+ | # Переключаем 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: | ||
+ | RUN add-apt-repository -y ppa: | ||
+ | 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 / | ||
+ | # Отключаем режим демона для Nginx (т.к. запускать будем сами) | ||
+ | RUN echo " | ||
+ | # Отключаем режим демона для php-fpm | ||
+ | RUN sed -i -e " | ||
+ | # Добавляем конфиг supervisor (описание процессов, | ||
+ | ADD supervisord.conf / | ||
+ | |||
+ | # Объявляем, | ||
+ | VOLUME ["/ | ||
+ | # Объявляем, | ||
+ | EXPOSE 80 | ||
+ | # Запускаем supervisor | ||
+ | CMD ["/ | ||
+ | </ | ||
====== Ссылки ====== | ====== Ссылки ====== | ||
{{topic> | {{topic> |