Docker запускает скрипт в точке входа - PullRequest
0 голосов
/ 08 февраля 2019

В Dockerfile я определил точку входа :

ENTRYPOINT ["sh", "./docker-entrypoint.sh"]

В docker-entrypoint.sh я хочу создать файл (file.json) из template.json, которыйничего, но заменяет некоторые переменные окружения фактическими значениями.

#! /bin/bash

eval "echo \"$(<template.json)\"" > file.json; npm start

Теперь, после попадания в контейнер, я вижу, file.json пусто.Но если я выполняю ту же самую команду в приглашении bash внутри контейнера, она работает, и я вижу необходимое содержимое в file.json.

Почему это поведение?

Ответы [ 2 ]

0 голосов
/ 08 февраля 2019

Вы используете sh:

ENTRYPOINT ["sh", "./docker-entrypoint.sh"]

Но в вашем файле точки входа вы используете bash:

#! /bin/bash

Вы должны выбрать

0 голосов
/ 08 февраля 2019

Проблема с вашим переводчиком: sh Попробуйте exec form: ENTRYPOINT ["/bin/bash", "-c", "./docker-entrypoint.sh"]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...