3.8 KiB
3.8 KiB
Лабораторная работа №2
ПИбд-42 Машкова Маргарита
Задание
- Согласно варианту разработать два приложения такие, что результат первого является исходными данными для второго.
- Изучить файлы сборки образов docker и разработать их для созданных приложений.
- Собрать файл
docker-compose.yml
для запуска приложений. Разобраться с монтированием каталогов из хост-системы.
Docker Compose использует файл docker-compose.yml для создания и запуска всех сервисов, определенных в конфигурации, с помощью одной команды.
- Содержимое исходных файлов - целые числа.
- Результат выполнения программы 2 необходимо дополнительно вывести на экран.
Функциональность приложений:
worker-1
- Формирует файл/var/result/data.txt
так, что каждая строка файла - количество символов в именах файлов из каталога/var/data
.worker-2
- Ищет наименьшее число из файла/var/result/data.txt
и сохраняет его третью степень в/var/result/result.txt
.
Запуск программы
В директории с файлом docker-compose.yml
выполнить команду:
docker-compose up -d
Описание работы программы
Dockerfile сервиса worker-1
:
# Использование образа java
FROM openjdk:17
# Создание директорий
RUN mkdir /var/data
RUN mkdir /var/result
# Рабочая директория
WORKDIR /app
# Копирование исходных файлов
COPY src/Main.java /app/Main.java
# Компиляция
RUN javac Main.java
# Запуск
CMD ["java", "Main"]
Dockerfile сервиса worker-2
аналогичен.
Полный файл конфигурации docker-compose.yml
:
version: '3'
services:
worker-1:
build:
context: /worker-1
dockerfile: Dockerfile
container_name: worker-1
volumes: # Монтирование
- .\data:/var/data
- .\result:/var/result
worker-2:
build:
context: /worker-2
dockerfile: Dockerfile
container_name: worker-2
depends_on: # Зависимость сервисов
- worker-1
volumes: # Монтирование
- .\data:/var/data
- .\result:/var/result
Запуск сервисов
Содержимое файлов:
Т.к. первой программе важно не содержимое файлов, а количество символов в их названиях, то файлы в директории /data
пустые.
Названия файлов и количество символов в названии:
- digits.txt (10)
- integers.txt (12)
- numbers.txt (11)
Содержимое файлов каталога /result
:
- data.txt:
10
12
11- result.txt: 1000
Результат выполнения команды docker-compose up -d
:
Созданные образы:
Созданные контейнеры:
Результаты выполнения программ:
Ссылка на видео: https://youtu.be/8AG78ip0Bew