node.js - 为什么在我的 Docker 容器中找不到 yarn.lock?
问题描述
我正在运行一个 Node.js 脚本,如下所示docker run -it --rm -u node --name build_container -v $(pwd):/home/node/app -w "/home/node/app" node:lts bash -c "yarn install --no-cache --frozen-lockfile"
:
但是,脚本日志显示了显示info No lockfile found
,更奇怪的是,发现了一条消息,指出发现了package-lock.json。但是,工作目录没有package-lock。
有什么想法可能是问题吗?
解决方案
我建议使用你自己的Dockerfile
来构建你的图像 - 然后在构建中运行它 - 像这样:
Dockerfile
FROM node:12-alpine
# Create work directory
RUN mkdir -p /express
WORKDIR /express
# Bundle app sources
COPY . .
# Build app
RUN yarn install --prod --frozen-lockfile && yarn run build
EXPOSE 3000
# Set default NODE_ENV to production
ENV NODE_ENV production
ENTRYPOINT [ "yarn", "start" ]
.dockerignore
node_modules
build
dist
config
docs
*.log
.git
.vscode
然后构建镜像:
docker build -t <your image name> -f <Dockerfile (if omitted uses local folder .Dockerfile> <path to code your code>
构建完成后,像普通图像一样运行它——因为一切都已经在里面了。
推荐阅读
- visual-studio - 无法在 Visual Studio 2015 中安装“Visual Studio 安装程序”
- android - 将 Java 转换为 Kotlin 错误后实现代码
- angular - Router.url 总是返回斜杠而不是当前 url
- java - Kafka用例:不断从kafka中读取,对message进行解密,然后插入到db
- python - TypeError: 'map' 类型的对象在 woggle v 1.2 上没有 len()
- typescript - 打字稿分布条件类型
- python - Qt(PyQt)事件循环中的xmlprc?
- scala - 如何使用 Slick 在 SQLite 中启用外键验证
- javascript - 如何在流中设置动态反应类变量
- java - 如何打印出具有字母集和长度的可能字符串?