Как я могу передать в свой исходный код файл package-lock.json, сгенерированный внутри моего контейнера? - PullRequest
0 голосов
/ 03 января 2019

Я пытаюсь создать хороший рабочий процесс для работы с 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 голосов
/ 03 января 2019

Вам нужно добавить /app к томам, потому что package-lock.json будет сгенерировано в этом каталоге, не будет?

С этого момента вы можете заменить свои тома:

volumes:

    - ./app/src:/app/src

    - /app/node_modules/

на:

volumes:
    - ./app:/app

Также я бы выбрал /var/app вместо /app.

...