如何将容器内部生成的package-lock.json文件传递给源代码?

时间:2019-01-02 21:08:18

标签: node.js docker docker-compose dockerfile package-lock.json

我正在尝试构建一个良好的工作流以与docker和nodejs一起使用

我认为我有很好的基础,但是即使我有定义的卷,也无法将容器内部生成的package-lock.json打包为源代码

这是我的Dockerfile:

FROM node
WORKDIR /app

COPY ./package.json ./
RUN npm install
RUN npm install -g nodemon
COPY ./src ./src

EXPOSE 3000

CMD ["nodemon", "./src/index.js"]

这是我的docker-compose.yml:

version: '3'
services:
  web:
    build: ./app
    command: nodemon ./src/index.js
    ports:
      - '8080:3000'
    volumes:
      - ./app/src:/app/src
      - /app/node_modules/
    links:
      - mysql
  mysql:
    image: mysql:5.6
    environment:
      - MYSQL_DATABASE=dev
      - MYSQL_USER=dev
      - MYSQL_PASSWORD=dev
      - MYSQL_ROOT_PASSWORD=dev
    ports:
      - '3306:3306'

为了将package-lock.json提交给我的版本控制工具,每次我通过容器中的npm install安装新软件包并生成/更新package-lock.json时,我都想继续到我的源代码中,生成的package-lock.json文件

1 个答案:

答案 0 :(得分:0)

您需要向卷中添加wxBEGIN_EVENT_TABLE(MyFrame, wxFrame) EVT_MENU(Minimal_Quit, MyFrame::OnQuit) EVT_MENU(Minimal_About, MyFrame::OnAbout) wxEND_EVENT_TABLE() ,因为/app将在此目录中生成,不是吗?

因此,您可以替换卷:

package-lock.json

上:

volumes:

    - ./app/src:/app/src

    - /app/node_modules/

我也选择volumes: - ./app:/app 而不是/var/app