我正在尝试在docker run命令期间执行shell脚本:
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时,它根本不会创建它,也不会执行任何脚本。为什么?
答案 0 :(得分:0)
我不知道这是否是整个问题,但是
COPY ./environment.sh /usr/share/nginx/html
不对。
COPY [--chown=<user>:<group>] <src>... <dest>
[...]
- 如果
<dest>
不以斜杠结尾,它将被视为常规文件,并且<src>
的内容将写入<dest>
。
因此,这将尝试创建一个名为html
的常规文件并将脚本复制到其中。
尝试
COPY ./environment.sh /usr/share/nginx/html/
相反。