我是新來的碼頭和試圖移植到它的應用程序。實質上,在啓動時,應用程序需要執行一些我已經封裝在腳本中的依賴於環境的工作。沒有這樣的文件或目錄在碼頭建設
我的應用程序看起來像
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