NOTE: Apart from
(and even then it's questionable, I'm Scottish). These are machine translated in languages I don't read. If they're terrible please contact me.
You can see how this translation was done in this article.
Friday, 13 September 2024
//Less than a minute
Коли ми розробляли програмне забезпечення традиційно, ми накопичували базу даних, чергу повідомлень, кеш і, можливо, кілька інших послуг. Це може завдати болю, особливо, якщо ви працюєте над багатьма проектами. Докер Комбінація - це інструмент, який надає вам змогу визначати і запускати програми для роботи з декількома областями. Чудовий спосіб керувати залежностями розвитку.
На цьому дописі я покажу вам, як користуватися Докер Комосом, щоб керувати залежностями розвитку.
Спочатку вам слід встановити на будь-якій платформі комп'ютер 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, ви побачите, як виконуються ці служби