Dockerfile

Содержание
Введение
Своё название
FROM
LABEL
RUN
COPY
ENTRYPOINT
WORKDIR
EXPOSE
ENV
VOLUME
Примеры
Статьи про Docker

Введение

Dockerfile используется для создания образов. Команда build создаёт образ в соответсвии с инструкциями внутри.

Если вы использовали make или batch файлы, то сможете увидеть некоторые аналогии

Своё название

По умолчанию Docker ждёт, что докерфайл называется Dockerfile

Если вам нужно использовать несколько разных докерфайлов - можно дать каждому своё название.

Называть докерфайлы нужно в соответсвии с документацией :

Dockerfile.name

Например, можно называть по имени дистрибутива или по назначению:

Dockerfile.ubuntu , Dockerfile.debug и так далее

FROM

Инструкция FROM нужна, чтобы использовать другие образы. Если вам будет нужен Python можно взять готовый образ

FROM python:3.9

LABEL

Инструкция LABEL нужна, чтобы указать автора

LABEL author="andreyolegovich"

RUN

Инструкция RUN нужна, чтобы запусть команды. Например, команды Bash

RUN python -m pip install --upgrade pip # или RUN npm install

COPY

Когда код уже готов к продакшену инструкцией COPY его копируют в контейнер.

COPY src/ $YOUR_APP

ENTRYPOINT

Инструкция ENTRYPOINT указывает на точку входа в контейнер.

Желательно оформить в виде json массива.

ENTRYPOINT ["node", "server.js"]

WORKDIR

Инструкция WORKDIR указывает на рабочую директорию. Где данный контейнер будет запускаться.

пример

WORKDIR /var/app

EXPOSE

Инструкция EXPOSE открывает определённый порт

Например открыть порт 5000 для Flask

EXPOSE 5000

ENV

С помощью ENV можно задать переменные окружения.

Например можно задать рабочую директорию через ENV и потом переиспользовать

ENV APP_DIR=/home/app/python RUN mkdir -p $APP_DIR WORKDIR $APP_DIR COPY src/ $APP_DIR

VOLUME

С помощью VOLUME можно указать в какой диретории создать внешний раздел.

VOLUME ["/var/app"]

или несколько разделов

VOLUME ["/var/app", "/var/log]

Примеры

FROM python:3.9 ENV MICRO_SERVICE=/home/app/webapp # set work directory RUN mkdir -p $MICRO_SERVICE # where your code lives WORKDIR $MICRO_SERVICE # set environment variables ENV PYTHONDONTWRITEBYTECODE 1 ENV PYTHONUNBUFFERED 1 # install dependencies RUN python -m pip install --upgrade pip # copy project COPY src/ $MICRO_SERVICE RUN python -m pip install -r ./requirements.txt EXPOSE 8501 CMD streamlit run app.py

Пример докерфайла для простейшего контейнера

# getting base image ubuntu # for emply image use: # FROM scratch FROM ubuntu MAINTAINER eth1.ru RUN apt-get update CMD ["echo", "HH: image is creating"]

Похожие статьи
Docker
Установка в Linux и Windows
Основы
images: Образы
build: Создание контейнеров + примеры
run: Опции запуска контейнера
Сети
Dockerfile
Остановить/удалить все контейнеры
exec: выполнить команду в контейнере
docker compose
Установка docker compose в Linux
Видеоуроки
Ошибки
Make

Поиск по сайту

Подпишитесь на Telegram канал @aofeed чтобы следить за выходом новых статей и обновлением старых

Перейти на канал

@aofeed

Задать вопрос в Телеграм-группе

@aofeedchat

Контакты и сотрудничество:
Рекомендую наш хостинг beget.ru
Пишите на info@urn.su если Вы:
1. Хотите написать статью для нашего сайта или перевести статью на свой родной язык.
2. Хотите разместить на сайте рекламу, подходящую по тематике.
3. Реклама на моём сайте имеет максимальный уровень цензуры. Если Вы увидели рекламный блок недопустимый для просмотра детьми школьного возраста, вызывающий шок или вводящий в заблуждение - пожалуйста свяжитесь с нами по электронной почте
4. Нашли на сайте ошибку, неточности, баг и т.д. ... .......
5. Статьи можно расшарить в соцсетях, нажав на иконку сети: