Dockerfile

Contents
Introduction
FROM
LABEL
RUN
COPY
ENTRYPOINT
WORKDIR
EXPOSE
ENV
VOLUME
Статьи про Docker

Introduction

Dockerfile используется для создания образов.

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

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 его копируют в container.

COPY src/ $YOUR_APP

ENTRYPOINT

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

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

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

WORKDIR

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

пример

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

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

Search on this site

Subscribe to @aofeed channel for updates

Visit Channel

@aofeed

Feedback and Questions in Telegram

@aofeedchat