{"id":23439839,"url":"https://github.com/corejust/dockerlab","last_synced_at":"2025-06-10T08:33:57.695Z","repository":{"id":269336468,"uuid":"907098053","full_name":"CoreJust/DockerLab","owner":"CoreJust","description":"A laboratory work on Docker as a part of Networks\u0026Telecommunications course","archived":false,"fork":false,"pushed_at":"2024-12-22T20:59:01.000Z","size":8,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-29T09:57:37.861Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/CoreJust.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-12-22T19:58:35.000Z","updated_at":"2024-12-22T20:59:05.000Z","dependencies_parsed_at":"2024-12-22T20:32:50.593Z","dependency_job_id":"646463c5-0851-458a-a527-130ce26ee329","html_url":"https://github.com/CoreJust/DockerLab","commit_stats":null,"previous_names":["corejust/dockerlab"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CoreJust%2FDockerLab","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CoreJust%2FDockerLab/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CoreJust%2FDockerLab/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CoreJust%2FDockerLab/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/CoreJust","download_url":"https://codeload.github.com/CoreJust/DockerLab/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CoreJust%2FDockerLab/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259038301,"owners_count":22796594,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-12-23T15:37:18.908Z","updated_at":"2025-06-10T08:33:57.670Z","avatar_url":"https://github.com/CoreJust.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Docker: Докеризация приложения\n## Лабораторная №4 по предмету Сети и Телекоммуникации\n\n## Цель лабораторной\n\nЦель лабораторной: собрать из исходного кода и запустить в докере рабочее приложение с базой данных (любое опенсорс - Java, python/django/flask, golang).\n\n1. Образ должен быть легковесным.\n2. Использовать базовые легковесные образы - alpine.\n3. Вся конфигурация приложения должна быть через переменные окружения.\n4. Статика (зависимости) должна быть внешним томом `volume`.\n5. Создать файл `docker-compose` для старта и сборки.\n6. В `docker-compose` нужно использовать базу данных (postgresql, mysql, mongodb etc.).\n7. При старте приложения должно быть учтено выполнение автоматических миграций.\n8. Контейнер должен запускаться от непривилегированного пользователя.\n9. После установки всех нужных утилит, должен очищаться кеш.\n\n## Описание работы\n\nРазработано простое приложение на языке Rust. В качестве ORM используется SeaORM на основе rustls и async-std, для миграций используется CLI для лежащего в основе SeaORM SQLX. В качестве серверного web-фреймворка используется легковесная библиотека Tide на основе async-std. Для контейнеризации был использован Docker и для управления мультиконтейнерным приложением - Docker Compose.\n\n## Структура проекта\n\n- **Dockerfile**: Инструкции для Docker-образа.\n- **docker-compose.yml**: Конфигурационный файл Docker Compose, управляющий многоконтейнерным приложением. В частности, содержит конфигурацию PostgresQL.\n- **src/**: Исходные коды приложения.\n- **Cargo.lock and Cargo.toml**: Файлы проекта.\n- **migrations/**: Директория с файлами миграций.\n\n## Установка и запуск\n- Для сборки контейнеров и их запуска:\n```bash\ndocker-compose up --build\n```\n(Можно использовать флаг -d для запуска в фоновом режиме)\n- Проверка состояния:\n```bash\ndocker-compose ps\n```\n- Остановка:\n```bash\ndocker-compose stop\n```\n- Запуск:\n```bash\ndocker-compose start\n```\n- Остановка и очистка всех созданных томов и контейнеров:\n```bash\ndocker-compose down\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcorejust%2Fdockerlab","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcorejust%2Fdockerlab","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcorejust%2Fdockerlab/lists"}