В чем разница между CMD и ENTRYPOINT в Dockerfile?

Лучше, возможно, использовать другой текстовый компонент, который может обрабатывать более сложное форматирование, такое как JTextPane, а не JTextArea, поскольку последний больше подходит для отображения простого текста.

Но, если сказать, что если вы хотите отображать данные в форме таблицы, подумайте об использовании JTextArea, который имеет моноширинный шрифт, такой как Font.MONOSPACED, и используя String.format (...) для форматирования текста или даже лучше использовать JTable вместо JTextArea .

На боковой ноте рассмотрите переименование всех ваших переменных, чтобы их имена имели логический смысл. Нам сложно сделать головы или хвосты из метода с именем r () или массивом с именем t []. Сюда входят переменные GUI. Похоже, что вы используете NetBeans для создания своего графического интерфейса (и это еще одна рекомендация в другое время), и эта IDE легко позволит вам переименовать переменные GUI, и снова это то, что я настоятельно рекомендую. Через несколько недель, когда вы просмотрите этот код, будет гораздо больше смысла, если вы переименуете jTextField7 на clientLastNameField или некоторые из них.

1350
задан Jiri 4 February 2014 в 17:13
поделиться

1 ответ

Я добавлю свой ответ как пример <глоток> 1 , который мог бы помочь Вам лучше понять различие.

Позволяют нам предположить, что мы хотим создать изображение, которое будет всегда , выполняет команду сна, когда это запускается. Мы создадим наше собственное изображение и определим новую команду:

FROM ubuntu
CMD sleep 10

Теперь, мы создаем изображение:

docker build -t custom_sleep .
docker run custom_sleep
# sleeps for 10 seconds and exits

, Что, если мы хотим изменить число секунд? Мы должны были бы измениться Dockerfile, поскольку значение является hardcoded там, или переопределите команду путем обеспечения другой:

docker run custom_sleep sleep 20

, В то время как это работает, это не хорошее решение, поскольку у нас есть избыточная команда "сна" (цель контейнера к [1 113] сон , таким образом имея необходимость явно определить эти sleep, команда не является хорошей практикой).

Теперь позволяют нам попытаться использовать ENTRYPOINT инструкция:

FROM ubuntu
ENTRYPOINT sleep

Эта инструкция определяет программу, которая будет запущена, когда контейнер запустится .

Теперь мы можем работать:

docker run custom_sleep 20

Что относительно значения по умолчанию? Ну, Вы предположили это правильный:

FROM ubuntu
ENTRYPOINT ["sleep"]
CMD ["10"]

Эти ENTRYPOINT программа, которая будет запущена, и значение, переданное контейнеру, будет добавлено к ней.

Эти ENTRYPOINT может быть переопределен путем определения --entrypoint флаг, сопровождаемый новой точкой входа, которую Вы хотите использовать.

<глоток> шахта Not, я когда-то смотрел учебное руководство, которое обеспечило этот пример

12
ответ дан 22 November 2019 в 20:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: