https://github.com/ilrosch/docker-project-74
https://github.com/ilrosch/docker-project-74
docker docker-compose
Last synced: 10 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/ilrosch/docker-project-74
- Owner: ilrosch
- Created: 2025-05-26T09:42:54.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-05-28T08:24:16.000Z (about 1 year ago)
- Last Synced: 2025-07-08T15:08:27.718Z (12 months ago)
- Topics: docker, docker-compose
- Language: C
- Homepage:
- Size: 41.3 MB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Docker Compose
[](https://github.com/ilrosch/docker-project-74/actions) [](https://github.com/ilrosch/docker-project-74/actions/workflows/push.yml)
[Ready image](https://hub.docker.com/r/ilrosch/docker-project-74) on Docker Hub
---
Docker is a programme that allows the operating system to run processes in an isolated environment based on specially created images. An image is an independent file system, a container is a running process in an isolated environment. Thanks to the kernel capabilities, the container sees its own list of processes, network, file system and so on. Why all this? Docker is a universal way to deliver an application, because everything you already need is inside the image. The process of building a programme from source can look like this:
- Install dependencies under the operating system
- Get the source code (download the archive or clone the repository)
- Start compiling or building the project
This process can be non-trivial and not always fast or not doable at all. Docker allows you to simplify all of these steps to a single command.
Docker Compose allows you to develop a project locally using Docker. Docker Compose can manage a set of containers, each of which is a service of the project: database, proxy server and so on. It allows you to describe dependencies between services. For example, the dependency of an application on a database. The configuration of Docker Compose is described in the file docker-compose.yml, lying in the root of the project.
## Description
In this project, students package a [js-fastify-blog](https://github.com/hexlet-components/js-fastify-blog) application in a Docker image. The application already uses the [12 factors methodology](https://12factor.net/), this minimises the differences between development and production environments.
Docker Compose is used to set up the development environment, run tests and CI. Upon successful CI execution, an image of the application is built and published to hub.docker.com. This makes setting up and running the application a matter of minutes, without instructions.
```console
# Run application development
make start
# Run build application (production)
make build
# Run tests (on Postgres)
make ci
# Push on Docker Hub
make push
```