Ведущие пробелы внутри Dockerfile для удобства чтения - PullRequest
2 голосов
/ 21 апреля 2020

Могу ли я использовать отступ в Dockerfile?

Есть ли что-то не так с использованием пробелов для отступа, как это?

FROM python:3.8-buster
  RUN pip --no-cache-dir install poetry gunicorn

  WORKDIR /app
    COPY poetry.toml pyproject.toml poetry.lock /app/
    RUN poetry export --dev -f requirements.txt > requirements.txt
    RUN pip install --no-cache-dir -r requirements.txt

  WORKDIR /app/src
    COPY src /app/src
    RUN ./manage.py collectstatic --noinput --clear

  CMD ["gunicorn", "--bind", ":8000", "wsgi:application"]

Создание такого docker изображения кажется отлично работает.

Ответы [ 2 ]

1 голос
/ 21 апреля 2020

Вы можете делать отступы строк в Dockerfile, но обычно он используется только при разрыве длинных командных строк, например:

RUN export ADMIN_USER="mark" \
    && echo $ADMIN_USER > ./mark \
    && unset ADMIN_USER

Вы можете использовать отступы для инструкций, но я лично не буду этого делать - - каждая инструкция создает новый слой, и логично размещать их с одинаковым отступом. Как дополнительный отступ, например:

FROM python:3.8-buster
  RUN pip --no-cache-dir install poetry gunicorn

будет выглядеть так, как будто он вводит подслои (а Docker не имеет такой концепции).

Но опять же, это личное, и если вы и ваша команда согласна с этим стандартом форматирования - есть куча линтеров, которые позволят вам использовать любой стандарт форматирования с небольшими (или отсутствующими) изменениями:

1 голос
/ 21 апреля 2020

Формат Dockerfile

Dockerfile Требования к формату довольно лаконичны:

Вот формат Dockerfile:

# Comment
INSTRUCTION arguments

В инструкции не учитывается регистр. Однако для них принято использовать UPPERCASE, чтобы легче guish отличать их от аргументов.

Нет никаких предложений относительно отступа строки.

Использовать линтеры

Существует много Dockerfile линтеров, поэтому общий ответ таков: всегда старайтесь помешать процессу разработки.

Этот ответ гласит:

Давайте проверим Diockerfile с линтерами

FROM:latest

FROM:latest говорит:

Никаких проблем или предложений не найдено!

hadolint:

hadolint говорит:

...