【发布时间】:2021-12-23 09:39:08
【问题描述】:
这里是docker初学者,我有一个任务是创建一个可以让我的应用程序以这种方式运行的Dockerfile:
docker build -t newapp .
docker run -v $(pwd):/app -p 8080:8080 -w /app newapp ./start.sh
我正在创造这样的东西:
FROM node:16
WORKDIR /app
COPY ["package.json", "package-lock.json*", "./"]
RUN npm install
COPY . .
但我最终得到了这个:
/usr/local/bin/docker-entrypoint.sh: 11: exec: ./run.sh: Permission denied
我也尝试将我的 sh 脚本放入脚本文件夹并添加
RUN chmod +x ./scripts/*
但是失败了
【问题讨论】:
-
为什么你提议的
docker run命令会用绑定挂载覆盖镜像的/app目录(所以你在Dockerfile 中所做的任何事情实际上都没有效果)?图像应该有一个CMD来运行吗? -
不确定你的意思,但图像不应该有一个 cmd 来运行,因为在分配中用户正在运行
docker run -v $(pwd):/app -p 8080:8080 -w /app newapp ./start.sh来运行 dockerfile 也是这个命令,他们正在更改文件主文件夹 -
鉴于
docker run命令,如果您使用未修改的节点图像 (docker run -v ... -p ... -w /app node:16 ./start.sh),我希望您会得到相同的结果。在此设置中使用 Docker 并没有太多好处 -
我同意,但这只是一个任务
标签: bash docker dockerfile