Docker:命令"/bin/sh"未找到。

3
ENV PORT=3000
ENV NODE_ENV=production
EXPOSE $PORT

WORKDIR $APP_DIR
COPY yarn.lock package.json $APP_DIR/
RUN ["/usr/local/bin/yarn"]

COPY . $APP_DIR
ENTRYPOINT ["/usr/local/bin/yarn", "run"]
CMD ['dev']

使用以下命令运行:

docker run --rm -p 3000:3000 my-app:latest

控制台输出如下:

yarn run v0.17.9 error Command "/bin/sh" not found. info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

我期望在docker中执行/usr/local/bin/yarn run dev,但是似乎有些遗漏了?

1个回答

9

尝试切换到双引号,单引号不能用于json字符串:

CMD ["dev"]

任何不是 JSON 的东西都会被转换为 /bin/sh -c "$@"。如果您在构建镜像后运行 docker inspect,就可以看到这种情况发生了。 - BMitch
非常感谢。差点让我沮丧。 - Damilola

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接