Как сделать комментарий в файле Docker?

Я пишу Dockerfile. Есть ли способ сделать комментарии в этом файле?

Есть ли в Docker опция комментария, которая берет остальную часть строки и игнорирует ее?

Ответ 2

Как уже упоминалось, комментарии отмечены знаком # и задокументированы здесь. Однако, в отличие от некоторых языков, знак # должен находиться в начале строки. Если они происходят частично через строку, они интерпретируются как аргумент и могут привести к неожиданному поведению.

# This is a comment

COPY test_dir target_dir # This is not a comment, it is an argument to COPY

RUN echo hello world # This is an argument to RUN but the shell may ignore it

Следует также отметить, что в Dockerfile недавно были добавлены директивы синтаксического анализатора, которые имеют тот же синтаксис, что и комментарий. Они должны появиться вверху файла, перед любыми другими комментариями или командами. Первоначально эта директива была добавлена для изменения escape-символа для поддержки Windows:

# escape='

FROM microsoft/nanoserver
COPY testfile.txt c:\
RUN dir c:\

Первая строка, хотя она выглядит как комментарий, является директивой синтаксического анализатора, которая заменяет escape-символ на обратную черту, чтобы команды COPY и RUN могли использовать обратную косую черту в пути. Директива парсер также используется BuildKit для изменения внешнего интерфейса парсер с syntax строки. Посмотрите экспериментальный синтаксис для более подробной информации о том, как это используется на практике.

С помощью многострочной команды закомментированные строки игнорируются, но вы должны закомментировать каждую строку отдельно:

$ cat Dockerfile
FROM busybox:latest
RUN echo first command \
# && echo second command disabled \
 && echo third command

$ docker build .
Sending build context to Docker daemon  23.04kB
Step 1/2 : FROM busybox:latest
 ---> 59788edf1f3e
Step 2/2 : RUN echo first command  && echo third command
 ---> Running in b1177e7b563d
first command
third command
Removing intermediate container b1177e7b563d
 ---> 5442cfe321ac
Successfully built 5442cfe321ac

Ответ 4

Комментарии Dockerfile начинаются с '#', как и Python. Вот хороший пример (kstaken/dockerfile-examples):

# Install a more-up-to date version of MongoDB than what is included in the default Ubuntu repositories.

FROM ubuntu
MAINTAINER Kimbro Staken

RUN apt-key adv --keyserver keyserver.ubuntu.com --recv 7F0CEB10
RUN echo "deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen" | tee -a /etc/apt/sources.list.d/10gen.list
RUN apt-get update
RUN apt-get -y install apt-utils
RUN apt-get -y install mongodb-10gen

#RUN echo "" >> /etc/mongodb.conf

CMD ["/usr/bin/mongod", "--config", "/etc/mongodb.conf"] 

Ответ 5

Формат

Вот формат Dockerfile:

Мы можем использовать # для комментирования, например, #Comment

#FROM microsoft/aspnetcore
FROM microsoft/dotnet
COPY /publish /app
WORKDIR /app
ENTRYPOINT ["dotnet", "WebApp.dll"]

Из приведенного выше файла, когда мы собираем докер, он пропускает первую строку и переходит к следующей строке, потому что мы прокомментировали его, используя #