Files
learn-devops/docker/README.md
github-actions[bot] f22a65d5a6 Update docker images (#11)
Co-authored-by: Fedor Batonogov <f.batonogov@yandex.ru>
2024-06-05 12:49:58 +03:00

2.3 KiB

Docker

Описание приложения

Простой веб сервис написанный на Go, возвращающий имя узла.

Сервис можно запустить несколькими способами.

Локальный запуск

Сборка приложения:

go build main.go

Запуск

./main

Вывод

Сервер запущен на порту 8080...

Запуск в контейнере

docker build -t test . && docker run test

Вывод

Сервер запущен на порту 8080...

Запуск при помощи docker compose

Запуск

docker compose --profile blue up --wait --remove-orphans --scale web-blue=5

Вывод

 ✔ Network docker_default          Created          0.0s
 ✔ Container docker-nginx-proxy-1  Healthy          0.1s
 ✔ Container docker-web-blue-2     Healthy          0.1s
 ✔ Container docker-web-blue-4     Healthy          0.1s
 ✔ Container docker-web-blue-3     Healthy          0.0s
 ✔ Container docker-web-blue-5     Healthy          0.1s
 ✔ Container docker-web-blue-1     Healthy          0.1s

Сине-зеленое развертывание

Запуск

bash ./deploy.sh

Вывод

Список контейнеров
NAME                   IMAGE                                 COMMAND                  SERVICE       CREATED         STATUS                   PORTS
docker-nginx-proxy-1   nginxproxy/nginx-proxy:1.5.2-alpine   "/app/docker-entrypo…"   nginx-proxy   2 minutes ago   Up 2 minutes (healthy)   0.0.0.0:80->80/tcp
docker-web-blue-1      docker-web-blue                       "./main"                 web-blue      7 seconds ago   Up 6 seconds (healthy)   8080/tcp
docker-web-blue-2      docker-web-blue                       "./main"                 web-blue      7 seconds ago   Up 6 seconds (healthy)   8080/tcp
docker-web-blue-3      docker-web-blue                       "./main"                 web-blue      7 seconds ago   Up 6 seconds (healthy)   8080/tcp
Журналы запуска web-blue
web-blue-1  | Сервер запущен на порту 8080...
web-blue-3  | Сервер запущен на порту 8080...
web-blue-2  | Сервер запущен на порту 8080...