docker - 如何通过查找纱线来修复 docker 容器中的错误?
问题描述
我正在尝试设置 0x Launch Kit 前端(https://github.com/0xProject/0x-launch-kit-frontend)。我已经将它构建到一个带有 Dockerfile 的 docker 容器中:https ://github.com/0xProject/0x-launch-kit-frontend/blob/development/Dockerfile 。当尝试执行docker run image:name yarn build
应该从本地 Docker 映像运行容器的命令时,我收到错误消息docker-entrypoint.sh: exec: line 32: yarn: not found
。为什么会这样,我该如何解决?这部分的 Dockerfile(上面链接)中似乎安装了 yarn:
RUN apk update && \
apk upgrade && \
apk add --no-cache --virtual build-dependencies bash git openssh python make g++ && \
yarn --no-cache || \
apk del build-dependencies && \
yarn cache clean
此外,这里是 docker-entrypoint.sh 文件的代码:
#!/usr/bin/env sh
# vim:sw=4:ts=4:et
set -e
if [ "$1" = "nginx" -o "$1" = "nginx-debug" ]; then
if /usr/bin/find "/docker-entrypoint.d/" -mindepth 1 -maxdepth 1 -type f -print -
quit 2>/dev/null | read v; then
echo "$0: /docker-entrypoint.d/ is not empty, will attempt to perform configuration"
echo "$0: Looking for shell scripts in /docker-entrypoint.d/"
find "/docker-entrypoint.d/" -follow -type f -print | sort -n | while read -r f; do
case "$f" in
*.sh)
if [ -x "$f" ]; then
echo "$0: Launching $f";
"$f"
else
# warn on shell scripts without exec bit
echo "$0: Ignoring $f, not executable";
fi
;;
*) echo "$0: Ignoring $f";;
esac
done
echo "$0: Configuration complete; ready for start up"
else
echo "$0: No files found in /docker-entrypoint.d/, skipping configuration"
fi
fi
exec "$@"
解决方案
推荐阅读
- c++ - 如何初始化类中非平凡对象的 std::array,其中数组的大小是类的模板参数?
- javascript - Charts.JS - 图表太多?- 加载问题
- javascript - 融合图表不加载
- php - 致命错误:未捕获的错误:调用资源中的成员函数 prepare()
- c - 孩子和父母之间使用信号进行双向交流
- docker - 如何在容器的卷映射目录中对目录进行卷映射?
- javascript - TypeError [ERR_INVALID_ARG_TYPE]:“id”参数必须是字符串类型。接收到的类型对象
- spring - Hibernate 对自定义 JPQL 执行更新和删除
- r - 将 lapply 与 for 和 if..else 语句结合使用,将条件列添加到多个数据帧
- angular6 - 数据不刷新提交表单和路由更改,Angular 6