我们有一个有角度的应用程序,我们试图在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
答案 0 :(得分:0)
我只需添加即可使它工作
exec "$@"
运行脚本结束