node.js - Docker 在 docker-compose up 上同时运行 Yarn update 和 npm update
问题描述
我正在运行一个包含我的后端代码作为卷的 docker 容器:
码头工人-compose.yml
version: '3'
services:
auth:
container_name: ${AUTH_CONTAINER}
build: ./modules/auth
working_dir: /usr/app
command: "npm install && npm start"
volumes:
- ../backend/modules/auth:/usr/app
expose:
- 9229
ports:
- 9229:9229
Dockerfile:
FROM node:alpine
WORKDIR /usr/app
COPY entrypoint.sh .
ENTRYPOINT ["sh", "/entrypoint.sh"]
入口点:
#!/usr/bin/env bash
exec "$@"
当我运行 docker-compose up 时,第一步总是运行 yarn。我收到一条错误消息,说我不应该同时使用 npm 和 yarn,因为我目前正在为项目使用 npm。有没有办法让 node:alpine 只使用 npm (我知道它已安装),然后在运行 docker-compose up 时调用 npm install ?
EDIT2:Package.json
{
"name": "auth",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"start": "node index.js"
},
"author": "",
"license": "ISC",
"dependencies": {
"express": "^4.17.1"
}
}
解决方案
对于达到这一点并且想知道为什么会发生这种情况的任何人。确保在运行之前运行docker-compose -- build
FIRSTdocker-compose up
,这是我遇到的问题。
Dockerfile
FROM node:14
WORKDIR /usr/src/app
COPY package*.json ./
RUN npm install
COPY entrypoint.sh /
ENTRYPOINT ["sh", "/entrypoint.sh"]
入口点:
exec "$@"
码头工人撰写:
version: '3'
services:
auth:
container_name: "Auth"
build: "./auth"
working_dir: /usr/app
command: "npm start"
environment:
- NODE_ENV=local
volumes:
- ../backend/modules/auth:/usr/app
expose:
- 9299
ports:
- 9229:9229
推荐阅读
- ada - 我简单的 Ada 程序无法执行下一个命令,但在构建和运行过程中它并不重要
- python - 绘制作为距离或角度函数的谐波势
- javascript - 将UTC转换为国家当地时间
- python - openpyxl中的选择自动填充?
- ios - 如何正确地将第三方框架添加到 react-native 项目的 ios 部分?
- symfony - 每个请求中的 Symfony 新 session_id
- android - 无法在 android Weather 应用程序中获取 JSON 数据
- wiremock - Wiremock - 一个文件中的多个存根
- autodesk-forge - Forge Viewer - 无法解析 OTG
- c# - 以 utf-8 编码从 xml 创建 zip