在docker运行时执行shell脚本

时间:2019-06-06 20:58:01

标签: docker

我正在尝试在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时,它根本不会创建它,也不会执行任何脚本。为什么?

1 个答案:

答案 0 :(得分:0)

我不知道这是否是整个问题,但是

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

不对。

Dockerfile documentation说:

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

[...]

     
      
  • 如果<dest>不以斜杠结尾,它将被视为常规文件,并且<src>的内容将写入<dest>
  •   

因此,这将尝试创建一个名为html的常规文件并将脚本复制到其中。

尝试

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

相反。