first commit

This commit is contained in:
Антон Скалкин 2024-04-22 13:04:31 +04:00
commit 9a6d7a7799
4 changed files with 109 additions and 0 deletions

29
Dockerfile Normal file
View File

@ -0,0 +1,29 @@
# образ с JDK
FROM eclipse-temurin:17
# обновление пакетов, установка git
RUN apt-get update && apt-get install -y git
# клонирование репозитория проекта
RUN git clone https://git.athene.tech/is.ulstu.ru/os-test-app /opt/WebProject
# выдача прав gradlew
RUN chmod +x /opt/WebProject/gradlew
# установка Gradle
RUN apt-get install -y gradle
# установка окружения (рабочей директории) для проекта
WORKDIR /opt/WebProject
# сборка проекта с помощью gradle
RUN ./gradlew build
# переменные окружения приложения
ENV DB_HOST=db
ENV DB_PORT=5432
ENV DB_USER=user
ENV DB_PASSWORD=password
ENV DB_NAME=dbname
# запуск приложения при запуске контейнера
CMD ["./gradlew", "bootRun", "-Prod"]

13
docker-compose.service Normal file
View File

@ -0,0 +1,13 @@
[Unit]
Description=Some personal Docker containers
After=docker.service
Requires=docker.service
[Service]
Type=oneshot
RemainAfterExit=yes # чтобы считать службу активной после завершения процесса
ExecStart=docker compose -f /opt/project/docker-compose.yml up --detach
ExecStop=docker compose -f /opt/project/docker-compose.yml stop
[Install]
WantedBy=multi-user.target

22
docker-compose.yml Normal file
View File

@ -0,0 +1,22 @@
version: '3.8'
services:
app:
image: ujijrujijr/os_lab5
#build: . # для сборки проекта из соседнего Dockerfile
ports:
- "8081:8080"
depends_on:
- db
db:
image: postgres:13
environment:
- POSTGRES_USER=user
- POSTGRES_PASSWORD=password
- POSTGRES_DB=dbname
volumes:
- db-data:/var/lib/postgresql/data
volumes:
db-data:

View File

@ -0,0 +1,45 @@
# справочная информация
docker --help # список доступных команд
docker <command> --help # информация по команде
docker --version # версия Docker
docker info # общая информация о системе
# работа с образами
docker search debian # поиск образов по ключевому слову debian
docker pull ubuntu # скачивание последней версии (тег по умолчанию latest) официального образа ubuntu (издатель не указывается) из репозитория по умолчанию docker.io/library
docker pull prom/prometheus # скачивание последней версии (latest) образа prometheus от издателя prom из репозитория docker.io/prom
docker pull docker.io/library/ubuntu:18.04 # скачивание из репозитория docker.io официального образа ubuntu с тегом 18.04
docker images # просмотр локальных образов
docker rmi <image_name>:<tag> # удаление образа. Вместо <image_name>:<tag> можно указать <image_id>. Для удаления образа все контейнеры на его основе должны быть как минимум остановлены
docker rmi $(docker images -aq) # удаление всех образов
# работа с контейнерами
docker run hello-world # Hello, world! в мире контейнеров
docker run -it ubuntu bash # запуск контейнера ubuntu и выполнение команды bash в интерактивном режиме
docker run --name docker-getting-started --publish 8080:80 docker/getting-started # запуск контейнера gettind-started с отображением (маппингом) порта 8080 хоста на порт 80 внутрь контейнера
docker run --detach --name mongodb docker.io/library/mongo:4.4.10 # запуск контейнера mongodb с именем mongodb в фоновом режиме. Данные будут удалены при удалении контейнера!
docker ps # просмотр запущенных контейнеров
docker ps -a # просмотр всех контейнеров (в том числе остановленных)
docker stats --no-stream # просмотр статистики
docker start alpine # создание контейнера из образа alpine
docker start <container_name> # запуск созданного контейнера. Вместо <container_name> можно указать <container_id>
docker start $(docker ps -a -q) # запуск всех созданных контейнеров
docker stop <container_name> # остановка контейнера. Вместо <container_name> можно указать <container_id>
docker stop $(docker ps -a -q) # остановка всех контейнеров
docker rm <container_name> # удаление контейнера. Вместо <container_name> можно указать <container_id>
docker rm $(docker ps -a -q) # удаление всех контейнеров
# система
docker system info # общая информация о системе (соответствует docker info)
docker system df # занятое место на диске
docker system prune -af # удаление неиспользуемых данных и очистка диска