osmosx / leroymerlin

Test job for Devops Intern position

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Тестовое задание на позицию Devops Intern

Что требовалось

  1. Запустить любую базу данных (MySQL/Postresql/MongoDB) в Docker контейнере
  2. Написать простой веб-сервис на любом языке (Python/Java/Go), который:
  • Слушает порт 8080
  • На POST запрос по пути /intern записывает информацию о кандидате в базу данных
  • На GET запрос по пути /intern выдает информацию о кандидате из базы данных
  • Информация о кандидате выдается и принимается в JSON формате и содержит имя, фамилию и пару слов о себе
  1. Написать Dockerfile, который будет собирать Docker образ c приложением
  2. Залить Docker образ с приложением на Dockerhub
  3. Написать docker-compose файл, который:
  • запускает приложение с образом из Dockerhub на порту 8888
  • запускает базу данных на любом порту
  1. Написать README.md файл в котором описать:
  • Что делает приложение
  • Инструкцию как запустить приложение с примером запросов
  1. Загрузить все в репозиторий на GitHub и прислать ссылку

Описание

Веб сервис написан на языке Go и работает с базой данных Postresql. Веб-сервис слушает порт 8080. На POST запрос по пути /intern записывает информацию о кандидате в базу данных. На GET запрос по пути /intern выдает информацию о кандидате из базы данных. Информация о кандидате выдается и принимается в JSON формате и содержит имя, фамилию и пару слов о себе. Образ с приложением собран и загружен на Docker Hub, и при запуске будет подгружаться от туда. Docker-compose запускает базу данных и сразу создает необходимую таблицу в ней. Запускает приложение на порту 8080. Это мой первый проект такого рода, поэтому есть чему учиться и что дорабатывать.

Как использовать

git clone https://github.com/osmosx/leroymerlin.git
cd leroymerlin
docker-compose up

#GET

curl http://localhost:8080/intern

или http://localhost:8080/intern

#POST

curl --header "Content-Type: application/json" \
  --request POST \
  --data '{"first_name":"Denis","last_name":"Chernyavskiy","about":"Best Intern"}' \
  http://localhost:8080/intern

или воспользоваться программами Postman или Insomnia

#JSON

	{
		"first_name": "You",
		"last_name": "are",
		"about": "the Best"
	}

About

Test job for Devops Intern position


Languages

Language:Go 80.4%Language:Dockerfile 15.6%Language:Makefile 4.0%