docker - 运行自定义脚本后 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
解决方案
我只需添加即可
exec "$@"
到我的脚本运行结束
推荐阅读
- java - 如何从arrayList中删除重复元素但它们的总和参数?
- python - 如何使用多张图片的输入创建一个直方图
- anaconda - 让 QCacheGrind 显示调用图
- asp.net - Web 配置文件未嵌套
- pandas - 如何从熊猫中绘制 fdate 并选择日期格式?
- kotlin - PageKeyedDataSource loadAfter 连续调用
- vue.js - 如何使用 jest.fn() 模拟属性
- r - 如何在 R 中按组顺序标记类别?
- r - 在 R 中读取具有不同布局的多个 Excel 文件
- postgresql - 带有 lambdas 的 AWS RDS Postgresql API 在创建后非常慢