Back to "Використання " Докера " у зв'язку з залежностями розвитку"

This is a viewer only at the moment see the article on how this works.

To update the preview hit Ctrl-Alt-R (or ⌘-Alt-R on Mac) or Enter to refresh. The Save icon lets you save the markdown file to disk

This is a preview from the server running through my markdig pipeline

Docker

Використання " Докера " у зв'язку з залежностями розвитку

Friday, 13 September 2024

Вступ

Коли ми розробляли програмне забезпечення традиційно, ми накопичували базу даних, чергу повідомлень, кеш і, можливо, кілька інших послуг. Це може завдати болю, особливо, якщо ви працюєте над багатьма проектами. Докер Комбінація - це інструмент, який надає вам змогу визначати і запускати програми для роботи з декількома областями. Чудовий спосіб керувати залежностями розвитку.

На цьому дописі я покажу вам, як користуватися Докер Комосом, щоб керувати залежностями розвитку.

Передумови

Спочатку вам слід встановити на будь-якій платформі комп'ютер docker. Ви можете звантажити його за допомогою тут.

ЗАУВАЖЕННЯ: для того, щоб встановити програму, вам слід запустити засіб встановлення стільниці Docker як адміністратор.

Створення файла компонування Docker

Для визначення служб, які ви бажаєте запустити Docker Compose використовує файл YML. Ось приклад простого devdeps-docker-compose.yml файл, який визначає службу бази даних і службу електронної пошти:

services: 
  smtp4dev:
    image: rnwood/smtp4dev
    ports:
      - "3002:80"
      - "2525:25"
    volumes:
      # This is where smtp4dev stores the database..
      - e:/smtp4dev-data:/smtp4dev
    restart: always
  postgres:
    image: postgres:16-alpine
    container_name: postgres
    ports:
      - "5432:5432"
    env_file:
      - .env
    volumes:
      - e:/data:/var/lib/postgresql/data  # Map e:\data to the PostgreSQL data folder
    restart: always	
networks:
  mynetwork:
        driver: bridge

Зауважте, що тут я вказала томи для збереження даних для кожної служби, тут я вказала

    volumes:
      # This is where smtp4dev stores the database..
      - e:/smtp4dev-data:/smtp4dev
    volumes:
        - e:/data:/var/lib/postgresql/data  # Map e:\data to the PostgreSQL data folder

Це гарантує, що дані зберігаються між перевантаженнями контейнерів.

Також я визначаю env_file для postgres Служи. Цей файл містить змінні середовища, які передаються до контейнера. Ви можете бачити список змінних середовища, які можна передати до контейнера PostgreSQL тут. Ось приклад .env файл:

POSTGRES_DB=postgres
POSTGRES_USER=postgres
POSTGRES_PASSWORD=<somepassword>

За допомогою цього пункту можна налаштувати типову базу даних, пароль і користувача для PostgreSQL.

Тут я також запустив службу SMTP4Dev, це чудовий інструмент для тестування функціональних можливостей електронної пошти у вашій програмі. Докладніші відомості щодо цього можна знайти у розділі. тут.

Якщо ти заглянеш в мою appsettings.Developmet.json файл, який ви побачите, має такі налаштування для сервера SMTP:

  "SmtpSettings":
{
"Server": "localhost",
"Port": 2525,
"SenderName": "Mostlylucid",
"Username": "",
"SenderEmail": "[email protected]",
"Password": "",
"EnableSSL": "false",
"EmailSendTry": 3,
"EmailSendFailed": "true",
"ToMail": "[email protected]",
"EmailSubject": "Mostlylucid"

}

Це працює для SMTP4Dev і надає мені змогу перевірити цю функціональність (можна надіслати на будь- яку адресу і побачити повідомлення електронної пошти у інтерфейсі SMTP4Dev за адресою http: // localhost: 3002 /).

Якщо ви впевнені, що все працює, ви можете перевірити на справжньому сервері SMTP, на зразок GMAIL (наприклад, див. тут для того, щоб зробити це)

Виконання служб

Щоб запустити служби, визначені у devdeps-docker-compose.yml файл, вам слід виконати таку команду у тому самому каталозі, що і у файлі:

docker compose -f .\devdeps-docker-compose.yml up -d

Зауважте, що спочатку вам слід запустити програму так, як це робить програма. За допомогою цього пункту ви зможете бачити елементи налаштування, які передаються з .env файл.

docker compose -f .\devdeps-docker-compose.yml config

Тепер, якщо ви поглянете на стільницю Docker, ви побачите, як виконуються ці служби

Стільниця Docker

logo

©2024 Scott Galloway