运行自定义脚本后Docker Nginx无法启动

时间:2019-02-16 12:34:11

标签: docker nginx

我们有一个有角度的应用程序,我们试图在docker nginx中运行。 我必须在启动时运行一个脚本,该脚本使用环境变量替换每个阶段的应用程序URL。这需要连接到后端。 我们不希望为每个阶段构建容器。该容器将在Azure docker中运行。 现在,我在本地运行它。它执行我的脚本,然后关闭应用程序。

Docker文件:

FROM node:8.11.2-alpine as node
LABEL author="My Online Presence"
WORKDIR /usr/src/app
COPY package*.json ./
RUN npm install
COPY . .
RUN npm run build

FROM nginx:1.13.12-alpine
COPY /certificates /etc/nginx/
COPY --from=node /usr/src/app/dist /usr/share/nginx/html
COPY ./nginx.conf /etc/nginx/conf.d/default.conf 
ADD run.sh /usr/share/nginx/html/run.sh

RUN apk add --update bash && rm -rf /var/cache/apk/*
RUN chmod +x /usr/share/nginx/html/run.sh
ENTRYPOINT ["/usr/share/nginx/html/run.sh"]
CMD ["nginx", "-g", "daemon off;"]

run.sh文件

#!/bin/sh
FILE_NAME=$(find . -name "main*.js")
sed -i "s/localhost\:4200/${DIGITISE_URL}/g" $FILE_NAME
echo 'File updated with correct url'

我使用

docker build -t digitise .

然后

docker run -p 80:80 -p 443:443 -e DIGITISE_URL=digitise.co.za digitise

1 个答案:

答案 0 :(得分:0)

我只需添加即可使它工作

exec "$@"

运行脚本结束