Skip to content

wildmakaka/Rolling-Scopes-School-Nodejs-Course-Task-6-Docker-basics

Repository files navigation

RS School Task 6. Docker basics

Привет!

Разрабатывается и тестируется в последней Ubuntu LTS.

Если вы работаете windows и есть gmail аккаунт, работу можно протестировать в бесплатных облаках google. https://shell.cloud.google.com/


Запуск

Нужно установить docker и docker-compose.

Скопировать проект.

В каталоге Rolling-Scopes-School-Nodejs-Course-Task-6-Docker-basics выполнить.


$ docker-compose up --build

Чтобы проверить работу, можно подключиться

http://localhost:4000/doc/


Остановка и удаление

^CTRL + C
$ docker-compose rm

Возможные проверки

Проверка обновления приложения, при изменении файла

Предлагаю, в файле app.ts разкомментировать

// throw Error('Oops! uncaughtException Happened!');

Ожидаемый результат:


Application


Проверка подключения к базе из контейнера с приложением

$ docker exec -it rsschool-app sh
# psql -h postgres -p 5432 -d db -U user -W

Пароль: pass123

postgres=# \l

Application

$ docker scan webmakaka/rsschool-app

✓ Tested 24 dependencies for known vulnerabilities, no vulnerable paths found.

$ docker scan webmakaka/rsschool-postgres

✓ Tested 34 dependencies for known vulnerabilities, no vulnerable paths found.


Application


Запушу контейнеры на dockerhub

$ docker login 
$ docker push webmakaka/rsschool-app
$ docker push webmakaka/rsschool-postgres

Результаты:

https://hub.docker.com/repository/docker/webmakaka/rsschool-app

https://hub.docker.com/repository/docker/webmakaka/rsschool-postgres


Комментарии по выполненной работе

Детали реализации:

✔️ Наличие в Readme.md секции с инструкцией как запустить приложение +20 баллов

✔️ Используется user-defined bridge +30 баллов

$ docker network ls

Возвращает:

045deffb3d3a   rsschool-network                                                   bridge    local

$ docker network inspect rsschool-network -f "{{json .Containers }}" \
| python -m json.tool

{
    "66f19fd9fefa484117fe8410e67a58419926f3e1aa47e340364630e9ffb54d56": {
        "EndpointID": "877a84b325d6deaa4e18b4fdd779dfc6a265d154da7ff56c4603dd047d25c544",
        "IPv4Address": "172.23.0.3/16",
        "IPv6Address": "",
        "MacAddress": "02:42:ac:17:00:03",
        "Name": "rsschool-app"
    },
    "7b18581735c29cdc0bd9813ee357ccf1d54caff99d4dafe9ff0375ed19a9cd7c": {
        "EndpointID": "253b7e958c8afeff9cbf30f9f4c06ddb6d436be435b1dbff1bdf53382421d95b",
        "IPv4Address": "172.23.0.2/16",
        "IPv6Address": "",
        "MacAddress": "02:42:ac:17:00:02",
        "Name": "rsschool-postgres"
    }
}


✔️ При возникновении ошибки контейнер должен перезапускается автоматически +30 баллов

В конфиге прописано.

restart: always

При, что включает в себя автоматический перезапуск при ошибке.

✔️ Логи и файлы базы данных хранятся в volumes, а не в контейнере +30 баллов

В конфиге прописаны volumes:

  • для приложения это все приложение, включая логи.
  • для базы данных каталог PGDATA в корне проекта с данными для базы данных.

Штрафы:

✔️ Внесение изменений в репозиторий после дедлайна не считая коммиты, вносящие изменения только в Readme.md минус 30% от максимального балла за задание (для этого задания 33 балла)

Изменений нет.

✔️ За отсутствие отдельной ветки для разработки -20 баллов

Ветка dev

✔️ За отсутствие Pull Request -20 баллов

Pull Request есть.

✔️ За неполную информацию в описании Pull Request -10 баллов

Полное описание.

✔️ Используется default bridge network driver -20 баллов

Используется созданный bridge, см. выше.

✔️ Конфигурация приложения жестко прописана в docker-compose.yml и Dockerfile -20 баллов

Используются переменные в dcoer-compse.yaml

✔️ При изменении файлов в папке src приложение не перезапускается -20 баллов

Можно внести изменения и проект обновится, см. пример в секции проверок.

✔️ Должен использоваться специфичный образ. (Например postgres и node, а не ububtu с установкой node или postgres) -20 баллов

Используется apline

✔️ Postgress image не указана как зависимость для node image -20 баллов

Указан.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published