gpt4 book ai didi

node.js - 将docker与nodejs和babel结合使用时,将缓存转储过程。如何避免缓存?

转载 作者:行者123 更新时间:2023-12-02 21:17:11 25 4
gpt4 key购买 nike

下面给出的是Dockerfile

FROM node:carbon

# Create app directory
WORKDIR /usr/api

# Install app dependencies
COPY package*.json ./

# install PM2
RUN npm install -g pm2

# copy PM2 config file
COPY ecosystem.config.js ./ecosystem.config.js

RUN npm install

# Bundle app source
COPY . .

RUN rm -rf build
# Run the build command to transpiling (This step is skipped)
RUN npm run build

# Expose the port
EXPOSE 8000

# Run for production
CMD [ "pm2", "start", "ecosystem.config.js", "--no-daemon" ]

# Running when using in dev mode
# CMD ["npm", "run", "dev"]

这是docker-compose.yml
version: '3'
services:
api:
build: .
ports:
- 8080:8000
volumes:
- .:/usr/api

我正在使用Express-Babel框架进行开发。该镜像对于nodemon(即在开发模式下)运行良好,并且跳过了RUN npm run build命令导致缓存的原因

最佳答案

RUN指令仅在首次构建容器时执行。除非RUN指令上方的行中有所更改,否则输出将被缓存并且不会重新运行。

如果要在容器启动时运行build npm run build,则最好将其放在CMD指令中。
CMD ["sh", "-c", "npm run build && npm run dev"]

关于node.js - 将docker与nodejs和babel结合使用时,将缓存转储过程。如何避免缓存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49812414/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com