Portainer¶
Один, чтобы править всеми!
Установка¶
Предварительно обновляем docker до последней версии
- Создаем папку проекта и внутри compose.yml
compose.yml
services: portainer: container_name: portainer image: portainer/portainer-ce:lts restart: always volumes: - /var/run/docker.sock:/var/run/docker.sock - portainer_data:/data ports: - 9443:9443 - 8000:8000 # Remove if you do not intend to use Edge Agents volumes: portainer_data: name: portainer_data networks: default: name: portainer_network - Переходим в нужную папку из powershell
- Запускаем
Работа в UI¶
Переходим в по адресу - https://localhost:9443/
Может ругаться на сертификат, это ок. При первом запуске попросит придумать логин и пароль.
Что внутри UI?¶
Рассмотрим по порядку основное меню слева после открытия. Чтобы появилось меню слева как на скрине выше, нужно нажать на контейнер local в Environments.
Запускаем первый контейнер и настраиваем сеть¶
Поднимем PostgreSQL и настроим
Настройка сети¶
- Открываем Networks
- Нажимаем справа + Add network
- указываем имя - etl_net Driver - bridge Остальное не меняем, так как локальный проект.
- Нажимаем Create the network
Добавляем первый Stack¶
- Открываем вкладку Stack
- Нажимаем справа + Add stack
- Указываем имя нашего стека - postgresql_test
- В Web editor указываем compose нашего PostgreSQL (см. ниже пример)
- В Environment variables указываем значения для наших переменных ${} (см. ниже). Можно нажать Advanced mode и вставить переменные одним файлом
- Запускаем сборку нажатием кнопки Deploy the stack. Если возникнут ошибки, то лови их в правом верхнем углу у колокольчика.
Обрати внимание, что мы указываем нашу сеть в compose
compose PostgreSQL для Web editor
services:
postgres:
image: postgres:${PG_VERSION}
container_name: postgres
restart: unless-stopped
ports:
- "${PG_HOST_PORT}:5432"
environment:
POSTGRES_USER: ${POSTGRES_USER}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
POSTGRES_DB: ${POSTGRES_DB}
volumes:
- pg_data:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL","pg_isready -U ${POSTGRES_USER} -d ${POSTGRES_DB}"]
interval: 10s
timeout: 5s
retries: 5
networks:
- etl_net
volumes:
pg_data:
networks:
etl_net:
external: true
name: etl_net
Environment variables
POSTGRES_USER=postgres
POSTGRES_PASSWORD=postgres_password_here
POSTGRES_DB=app_db
PG_HOST_PORT=5432
PG_VERSION=16-alpine
Проверяем подключение в Dbeaver¶
Что дальше?¶
Как запустить первый проект с PostgreSQL, Jupyter, vscode и Dagster смотри тут ➡️ Проект Базовый минимум













