我是新来的码头和试图移植到它的应用程序。实质上,在启动时,应用程序需要执行一些我已经封装在脚本中的依赖于环境的工作。没有这样的文件或目录在码头建设
我的应用程序看起来像
Dockerfile
scripts/run.sh
build-development/stuff
build-production/stuff
这里是我的Dockerfile:
FROM nginx
RUN chmod +x scripts/run.sh
CMD ["scripts/run.sh", APP_ENV]
EXPOSE 80
,这里是脚本/ run.sh:
#!/bin/bash
mkdir dist
chmod -R 777 dist
if [ $1 == "development" ]
then
cp -R build-development/. /usr/share/nginx/html
fi
if [ $1 == "stage" ]
then
cp -R build-production/. /usr/share/nginx/html
sed -i 's/production/stage/g' dist/index.html
fi
if [ $1 == "production" ]
then
cp -R build-production/. /usr/share/nginx/html
fi
的想法是,我将运行像这样的图像:
docker run -e APP_ENV=development app-name
它将被输入到脚本中,该脚本将复制正确的文件。
不幸的是,我从来没有运行图像的,因为在构建步骤:
docker build -t app-name .
我得到
错误脚本/ run.sh文件不是一个文件或目录
我不明白为什么我得到这个错误,我想这是来自我天真的误解。我做错了什么,我如何让我的项目工作?
在此先感谢。
感谢您指出这一点。正在遇到类似的问题,需要Docker for Win + WSL环境,而且EOL/r是问题所在。谢谢谢谢! – raupie