我正在为Angluar Web应用程序构建Docker-Image,在创建镜像时,我使用node-image作为基础构建Angular 绑定,然后将dist文件夹复制到nginx Web服务器。作为入口点,我使用shellscript将dist文件中的一些占位符替换为环境变量(API-Hostname等)。镜像构建时没有错误,但当我尝试运行包含该镜像的容器时,我得到以下错误:
run.sh: 1: Syntax error: word unexpected (expecting "do")
字符串
我的Dockerfile:
FROM node:16 AS build
WORKDIR /app
COPY package*.json ./
COPY src ./src
COPY angular.json ./
COPY tsconfig.app.json ./
COPY tsconfig.json ./
RUN npm install
RUN npm run build-docker
FROM nginx
COPY ./docker/nginx.conf /etc/nginx/nginx.conf
COPY --from=build /app/dist/[PROJECT NAME] /usr/share/nginx/html
COPY ./docker/run.sh ./run.sh
ENTRYPOINT ["sh", "run.sh"]
型
run.sh脚本:
for mainfile in $(ls /usr/share/nginx/html/main*.js);
do
envsubst '$HOST_NAME' < $mainfile > main.tmp;
mv main.tmp $mainfile;
done
nginx -g 'daemon off;'
型
我找不到任何错误,在此配置,任何想法?
1条答案
按热度按时间hwamh0ep1#
只是把答案贴在这里,让其他人在需要的时候找到。
问题是,我在
run.sh
文件中有一个codeon。在for循环的末尾。所以正确的脚本是:字符串
感谢@DavidMaze的帮助!