Тема
Docker Plugin
Плагин для интеграции с Docker.
Установка
sh
npm install @runium/plugin-dockersh
yarn add @runium/plugin-dockersh
pnpm add @runium/plugin-dockerВозможности
Плагин позволяет использовать Docker для запуска задач.
Задачи
Плагин добавляет новые типы задач:
docker- для запуска через Dockerdocker-compose- для запуска через Docker Compose
Новые задачи имеют схожие с обычными задачами конфигурации, отличаясь только типом и набором опций.
TIP
Подробнее о конфигурации задач плагина см. в разделе Задачи.
Пример
Docker
Пример задачи для запуска веб-сервера Nginx с пробросом портов и монтированием статических файлов:
json
{
"id": "nginx-server",
"type": "docker",
"options": {
"image": "nginx:alpine",
"containerName": "my-nginx-server",
"ports": ["8080:80", "8443:443"],
"volumes": [
"./html:/usr/share/nginx/html:ro",
"./nginx.conf:/etc/nginx/nginx.conf:ro"
],
"env": {
"NGINX_HOST": "localhost",
"NGINX_PORT": "80"
},
"autoRemove": true,
"log": {
"stdout": "./logs/nginx.log",
"stderr": "./logs/nginx-error.log"
}
}
}Docker Compose
Пример задачи для запуска веб-приложения с Nginx и базой данных MariaDB:
json
{
"id": "web-app-stack",
"type": "docker-compose",
"options": {
"services": {
"nginx": {
"image": "nginx:alpine",
"containerName": "web-nginx",
"ports": ["80:80", "443:443"],
"volumes": [
"./html:/usr/share/nginx/html:ro",
"./nginx/conf.d:/etc/nginx/conf.d:ro"
],
"dependsOn": ["mariadb"]
},
"mariadb": {
"image": "mariadb:latest",
"containerName": "web-mariadb",
"environment": {
"MYSQL_ROOT_PASSWORD": "rootpassword",
"MYSQL_DATABASE": "webapp",
"MYSQL_USER": "webuser",
"MYSQL_PASSWORD": "webpassword"
},
"volumes": [
"db-data:/var/lib/mysql",
"./init.sql:/docker-entrypoint-initdb.d/init.sql:ro"
],
"expose": ["3306"]
}
},
"volumes": {
"db-data": {}
},
"log": {
"stdout": "./logs/docker-compose.log",
"stderr": "./logs/docker-compose-error.log"
}
}
}