Docker -Составить файл - PullRequest
0 голосов
/ 09 июля 2020

У меня есть три отдельных микросервиса, и для каждого из них в их каталоге есть файл Dockerfile. фото моих микросервисов

Я новичок в Docker и немного запутался. для определения файла Docker Compose я должен определить три файла docker -compose.yml в каталоге каждой службы ?! Или я должен определить только один файл docker -compose.yml для всех моих сервисов ?! Если да, то в каком каталоге?

Ответы [ 2 ]

1 голос
/ 09 июля 2020

Docker compose создан для работы с несколькими приложениями, а с файлом Dockerfile он очень мощный. Проще говоря, вы можете разделить файл docker -compose на вещи, называемые «службами», и они будут действовать как разные, отдельные приложения / микросервисы, так что, скажем, мне нужны приложение nodejs и база данных в одном docker - compose file и Dockerfile:

Dockerfile:

FROM node:7.7.2-alpine
WORKDIR /usr/app
COPY package.json .
RUN npm install --quiet
COPY . .

Docker -compose:

version: '3.1'

services:

mongo:
  image: mongo
  name: database
  restart: always
  environment:
    MONGO_INITDB_ROOT_USERNAME: root
    MONGO_INITDB_ROOT_PASSWORD: example

web:
  build: .
  command: npm run dev
  volumes:
    - .:/usr/app/
    - /usr/app/node_modules
  ports:
    - "3000:3000"
  depends_on:
    - mongo

Если вы запустили это в каталоге, с которым хотите работать, он всегда будет оставаться в этом каталоге. Вы можете присвоить каждой службе собственное имя. В этом примере это mon go и web. После запуска локально вы можете ссылаться на свои службы и подключаться к ним, просто используя их соответствующие имена.

Я рекомендую эти два видео YouTube. Быстро и просто. Здесь и здесь

1 голос
/ 09 июля 2020

Вам не нужно создавать отдельный файл для создания сообщения. Docker compose предоставляет вам возможность указать расположение файлов Docker для настройки контейнеров. В папке root, содержащей эти три приложения, создайте файл набора.

Для примера проверьте этот файл https://github.com/dotnet-architecture/eShopOnContainers/blob/dev/src/docker-compose.yml

...