首页 > 解决方案 > 运行自定义脚本后 Docker nginx 未启动

问题描述

我们有一个角度应用程序,我们试图在 docker nginx 中运行。我必须在启动时运行一个脚本,该脚本使用环境变量来替换每个阶段的应用程序 url。这是连接到后端所必需的。我们不希望为每个阶段构建容器。容器将在 Azure 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

标签: dockernginx

解决方案


我只需添加即可

exec "$@"

到我的脚本运行结束


推荐阅读