Выполнить скрипт оболочки при запуске Docker - PullRequest
0 голосов
/ 06 июня 2019

Я пытаюсь выполнить сценарий оболочки во время команды запуска docker:

Dockerfile

FROM nginx:alpine

COPY ./environment.sh /usr/share/nginx/html

RUN chmod +x /usr/share/nginx/html/environment.sh

COPY nginx.conf /etc/nginx/nginx.conf

WORKDIR /usr/share/nginx/html

COPY build/ .

ENTRYPOINT ["/usr/share/nginx/html/environment.sh"]

environment.sh

#!/bin/sh
echo "TESTE"
F_MAIN=$(ls main.*.js)
sed -i "s#api.seplan#$API_URL#g" $F_MAIN
sed -i "s#api.eautoriza#$API_URL_AUTORIZA#g" $F_MAIN

Команда запуска Docker

sudo docker run --env API_URL=http://192.168.250.212:8084/seplan --env API_URL_AUTORIZA=http://192.168.250.212:8081/eAutorizaService/rest -p 4006:80  msaraujo/1736

Когда я делаю Docker PS, он не создает его вообще, и ни один скрипт не выполняется.Почему?

1 Ответ

0 голосов
/ 07 июня 2019

Не знаю, в этом ли вся проблема, но

COPY ./environment.sh /usr/share/nginx/html

не так.

В документации Dockerfile написано:

  • COPY [--chown=<user>:<group>] <src>... <dest>

[...]

  • Если <dest> не заканчивается завершающим слешем, он будет считатьсяобычный файл и содержимое <src> будут записаны в <dest>.

Таким образом, будет предпринята попытка создать обычный файл с именем html и скопировать в него скрипт.

Попробуйте

COPY ./environment.sh /usr/share/nginx/html/

вместо.

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