Как создать новое приложение с нуля внутри контейнера докера? - PullRequest
3 голосов
/ 09 июня 2019

Docker, как говорят, помогает изолировать среду приложений и помогает разработчикам запускать ту же среду.НО все руководства, учебные пособия, курсы и т. Д. Начинаются с уже созданного приложения.Итак, как мне запустить новое приложение с нуля, скажем, в NodeJS?

Итак, недавно я начал изучать докер, и да, это полезно для упаковки уже созданного приложения, если у меня уже все установлено.на моем локальном хост-компьютере и т. д.

НО, как начать разработку нового приложения?Например, в NodeJS, без установки хоста NodeJS, поэтому я не могу npm init мою папку.Как бы я установил новые пакеты, как бы node_modules был постоянным и все такое?

Вот некоторые базовые настройки, которые я использовал для упаковки и приложения ... ЭТО НЕ РАБОТАЕТ, ЧТОБЫ НАЧАТЬFROM SCRATCH.

FROM node:10-alpine

WORKDIR /usr/src/app

COPY package*.json ./
RUN npm install

COPY . .

CMD [ "npm", "start" ]
version: '3'

services:
  example-service:
    build: .
    volumes:
      - .:/usr/src/app
      - /usr/src/app/node_modules
    ports:
      - 3000:3000
      - 9229:9229
    command: npm start
dev:
  docker-compose up

Как видно из кода, у меня есть пользовательское изображение, docker-compose и make-файл.Я могу изменить любой кусок этого или все это.Я хочу разработать свое приложение, в котором ничего не установлено на моем хост-компьютере, кроме докера, контейнеры должны изолировать все необходимое для приложения, и рекомендуется сохранять любой новый пакет, установленный во время разработки.

1 Ответ

2 голосов
/ 10 июня 2019

Вы можете следовать " Как использовать Docker для разработки Node.js " Коди Крейвен :

Он использует сам Docker для разработки , а не только для развертывания / запуска приложения NodeJS.

Пример:

# This will use the node:8.11.4-alpine image to run `npm init`
# with the current directory mounted into the container.
#
# Follow the prompts to create your package.json
docker run --init --rm -it -v "${PWD}:/src" -w /src node:8.11.4-alpine npm init

Затем вы можете настроить среду выполнения с помощью:

FROM node:8.11.4-alpine AS dev
WORKDIR /usr/src/app
ENV NODE_ENV development
COPY . .
# You could use `yarn install` if you prefer.
RUN npm install

И создайте ваше приложение:

# Replace YOUR-NAMESPACE/YOUR-IMAGE with the name you would like to use.
docker build -t YOUR-NAMESPACE/YOUR-IMAGE:dev --target dev .

И запустить его:

# The `YOUR COMMAND` portion can be replaced with whatever command you
# would like to use in your container.
docker run --rm -it --init -v "${PWD}:/usr/src/app" YOUR-NAMESPACE/YOUR-IMAGE:dev YOUR COMMAND

Все без узла, установленного на вашей рабочей станции!

...