我从Dockerfile运行startup.sh脚本,当我运行docker容器时,我收到以下错误:
docker run -p 5308:5308 activity-logger
: not found line 2:
: not found line 5:
startup.sh: line 13: syntax error: unexpected end of file (expecting "then")
如果我尝试从命令行运行sh startup.sh
,它似乎运行良好。
有什么想法吗?
startup.sh
#!/bin/sh
export env_file=`echo microservice-configuration/$LS_ENVIRONMENT.environment.properties`
export startup_command="npm run start:dist"
if [ -f $env_file ]; then
echo "Using environment specific configuration file $env_file"
env $(cat $env_file | xargs) $startup_command
else
echo "There is no environment specific configuration file $env_file"
$startup_command
fi
Dockerfile
FROM node:6.9.4-alpine
# Create app directory
RUN mkdir -p /opt/app
WORKDIR /opt/app
COPY . /opt/app
RUN npm install -g yarn
RUN yarn
RUN yarn build
# This is not working very well - the dependencies cannot be installed afterwards
# RUN yarn --production
ENV NODE_ENV production
EXPOSE 5308
CMD ["/bin/sh", "startup.sh"]
答案 0 :(得分:2)
: not found line 2:
这指向了这个文件中的空白区域。最可能的原因是在Windows上编辑脚本并获取错误的换行符。停止使用您正在使用的任何编辑器,并使用更好的编辑器或dos2unix
等实用程序修复脚本。