diff --git a/simonov_nikita_lab_2/.idea/.gitignore b/simonov_nikita_lab_2/.idea/.gitignore
new file mode 100644
index 0000000..26d3352
--- /dev/null
+++ b/simonov_nikita_lab_2/.idea/.gitignore
@@ -0,0 +1,3 @@
+# Default ignored files
+/shelf/
+/workspace.xml
diff --git a/simonov_nikita_lab_2/.idea/misc.xml b/simonov_nikita_lab_2/.idea/misc.xml
new file mode 100644
index 0000000..a818314
--- /dev/null
+++ b/simonov_nikita_lab_2/.idea/misc.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/simonov_nikita_lab_2/.idea/modules.xml b/simonov_nikita_lab_2/.idea/modules.xml
new file mode 100644
index 0000000..cee9423
--- /dev/null
+++ b/simonov_nikita_lab_2/.idea/modules.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/simonov_nikita_lab_2/.idea/simonov_nikita_lab2.iml b/simonov_nikita_lab_2/.idea/simonov_nikita_lab2.iml
new file mode 100644
index 0000000..160cdf9
--- /dev/null
+++ b/simonov_nikita_lab_2/.idea/simonov_nikita_lab2.iml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/simonov_nikita_lab_2/.idea/sonarlint/issuestore/0/3/03a92d5d92427ae83731739f82560657bd7e1d33 b/simonov_nikita_lab_2/.idea/sonarlint/issuestore/0/3/03a92d5d92427ae83731739f82560657bd7e1d33
new file mode 100644
index 0000000..9377de0
--- /dev/null
+++ b/simonov_nikita_lab_2/.idea/sonarlint/issuestore/0/3/03a92d5d92427ae83731739f82560657bd7e1d33
@@ -0,0 +1,11 @@
+
+W
+java:S1141"5Extract this nested try block into a separate method.(81
+c
+java:S1075"ARefactor your code to get this URI from a customizable parameter.(ٞ8ꮗ1
+c
+java:S1075"ARefactor your code to get this URI from a customizable parameter.(8ꮗ1
+@ java:S106-"+Replace this use of System.out by a logger.(
+@ java:S106."+Replace this use of System.out by a logger.(㆛
+E java:S106/"+Replace this use of System.out by a logger.(
+E java:S1061"+Replace this use of System.out by a logger.(
\ No newline at end of file
diff --git a/simonov_nikita_lab_2/.idea/sonarlint/issuestore/3/5/35b8c13cf2eb2a194eada000eb310d65aed53b2a b/simonov_nikita_lab_2/.idea/sonarlint/issuestore/3/5/35b8c13cf2eb2a194eada000eb310d65aed53b2a
new file mode 100644
index 0000000..e69de29
diff --git a/simonov_nikita_lab_2/.idea/sonarlint/issuestore/5/0/502eff2775ccdc92a339926170a76685b0db195b b/simonov_nikita_lab_2/.idea/sonarlint/issuestore/5/0/502eff2775ccdc92a339926170a76685b0db195b
new file mode 100644
index 0000000..e69de29
diff --git a/simonov_nikita_lab_2/.idea/sonarlint/issuestore/6/b/6b3c7820a55d6a07cc9d46efa42c98ebf1f45354 b/simonov_nikita_lab_2/.idea/sonarlint/issuestore/6/b/6b3c7820a55d6a07cc9d46efa42c98ebf1f45354
new file mode 100644
index 0000000..e69de29
diff --git a/simonov_nikita_lab_2/.idea/sonarlint/issuestore/7/a/7a3b22c128c191dcaf132b29cd87547571c08e36 b/simonov_nikita_lab_2/.idea/sonarlint/issuestore/7/a/7a3b22c128c191dcaf132b29cd87547571c08e36
new file mode 100644
index 0000000..e69de29
diff --git a/simonov_nikita_lab_2/.idea/sonarlint/issuestore/8/3/83ed28ddb28df8a1891a8bb18462429f6bf9c67a b/simonov_nikita_lab_2/.idea/sonarlint/issuestore/8/3/83ed28ddb28df8a1891a8bb18462429f6bf9c67a
new file mode 100644
index 0000000..e69de29
diff --git a/simonov_nikita_lab_2/.idea/sonarlint/issuestore/8/e/8ec9a00bfd09b3190ac6b22251dbb1aa95a0579d b/simonov_nikita_lab_2/.idea/sonarlint/issuestore/8/e/8ec9a00bfd09b3190ac6b22251dbb1aa95a0579d
new file mode 100644
index 0000000..e69de29
diff --git a/simonov_nikita_lab_2/.idea/sonarlint/issuestore/9/2/92c4d1ca65baa16d74df9bf3d5b6393a87742c07 b/simonov_nikita_lab_2/.idea/sonarlint/issuestore/9/2/92c4d1ca65baa16d74df9bf3d5b6393a87742c07
new file mode 100644
index 0000000..92faf16
--- /dev/null
+++ b/simonov_nikita_lab_2/.idea/sonarlint/issuestore/9/2/92c4d1ca65baa16d74df9bf3d5b6393a87742c07
@@ -0,0 +1,13 @@
+
+W
+java:S1141"5Extract this nested try block into a separate method.(8ɞ1
+c
+java:S1075"ARefactor your code to get this URI from a customizable parameter.(ٞ8ɞ1
+U
+java:S1481"3Remove this unused "sourceFilePath" local variable.(ٞ8ɞ1
+c
+java:S1075"ARefactor your code to get this URI from a customizable parameter.(8ɞ1
+c
+java:S1075"ARefactor your code to get this URI from a customizable parameter.(8ɞ1
+G java:S106*"+Replace this use of System.out by a logger.(8ɞ1
+L java:S106+"+Replace this use of System.out by a logger.(힃8ɞ1
\ No newline at end of file
diff --git a/simonov_nikita_lab_2/.idea/sonarlint/issuestore/9/4/94c92b7b02fdd2531b355bac9c83b9f486abe86c b/simonov_nikita_lab_2/.idea/sonarlint/issuestore/9/4/94c92b7b02fdd2531b355bac9c83b9f486abe86c
new file mode 100644
index 0000000..b3ad7ab
--- /dev/null
+++ b/simonov_nikita_lab_2/.idea/sonarlint/issuestore/9/4/94c92b7b02fdd2531b355bac9c83b9f486abe86c
@@ -0,0 +1,3 @@
+
+L java:S106"+Replace this use of System.out by a logger.(Λ81
+L java:S106 "+Replace this use of System.out by a logger.(81
\ No newline at end of file
diff --git a/simonov_nikita_lab_2/.idea/sonarlint/issuestore/a/4/a44778d2018213866a7c7700d98e9b5a0c8bb0d7 b/simonov_nikita_lab_2/.idea/sonarlint/issuestore/a/4/a44778d2018213866a7c7700d98e9b5a0c8bb0d7
new file mode 100644
index 0000000..e69de29
diff --git a/simonov_nikita_lab_2/.idea/sonarlint/issuestore/a/d/adb97326bef634ca60e90d62c3e817831b0e62ad b/simonov_nikita_lab_2/.idea/sonarlint/issuestore/a/d/adb97326bef634ca60e90d62c3e817831b0e62ad
new file mode 100644
index 0000000..e69de29
diff --git a/simonov_nikita_lab_2/.idea/sonarlint/issuestore/d/1/d1d02446e29911114aa8461a6d339c8a9b233292 b/simonov_nikita_lab_2/.idea/sonarlint/issuestore/d/1/d1d02446e29911114aa8461a6d339c8a9b233292
new file mode 100644
index 0000000..e69de29
diff --git a/simonov_nikita_lab_2/.idea/sonarlint/issuestore/d/e/de9026ba42f1709def40029bb15d3a5c09210226 b/simonov_nikita_lab_2/.idea/sonarlint/issuestore/d/e/de9026ba42f1709def40029bb15d3a5c09210226
new file mode 100644
index 0000000..e69de29
diff --git a/simonov_nikita_lab_2/.idea/sonarlint/issuestore/e/6/e69c92c782a7aaf8d0c509cb120e1ead92c1002a b/simonov_nikita_lab_2/.idea/sonarlint/issuestore/e/6/e69c92c782a7aaf8d0c509cb120e1ead92c1002a
new file mode 100644
index 0000000..e69de29
diff --git a/simonov_nikita_lab_2/.idea/sonarlint/issuestore/e/c/ec82235829a15dc40a553c3fb4b789f1198f4425 b/simonov_nikita_lab_2/.idea/sonarlint/issuestore/e/c/ec82235829a15dc40a553c3fb4b789f1198f4425
new file mode 100644
index 0000000..e69de29
diff --git a/simonov_nikita_lab_2/.idea/sonarlint/issuestore/e/d/ed0d20f6dbf0bbada896a9094ff70ec66340a7a2 b/simonov_nikita_lab_2/.idea/sonarlint/issuestore/e/d/ed0d20f6dbf0bbada896a9094ff70ec66340a7a2
new file mode 100644
index 0000000..e69de29
diff --git a/simonov_nikita_lab_2/.idea/sonarlint/issuestore/e/e/ee36fd8c882eeb7d494b394d46fbdb34cd105ba9 b/simonov_nikita_lab_2/.idea/sonarlint/issuestore/e/e/ee36fd8c882eeb7d494b394d46fbdb34cd105ba9
new file mode 100644
index 0000000..e69de29
diff --git a/simonov_nikita_lab_2/.idea/sonarlint/issuestore/f/4/f4cf0185d9befba3e1246fec6ecc3fb42d5b2f98 b/simonov_nikita_lab_2/.idea/sonarlint/issuestore/f/4/f4cf0185d9befba3e1246fec6ecc3fb42d5b2f98
new file mode 100644
index 0000000..e69de29
diff --git a/simonov_nikita_lab_2/.idea/sonarlint/issuestore/f/b/fbfd3efcc3c334f991162df3f9840f75dd4ac2b6 b/simonov_nikita_lab_2/.idea/sonarlint/issuestore/f/b/fbfd3efcc3c334f991162df3f9840f75dd4ac2b6
new file mode 100644
index 0000000..e69de29
diff --git a/simonov_nikita_lab_2/.idea/sonarlint/issuestore/index.pb b/simonov_nikita_lab_2/.idea/sonarlint/issuestore/index.pb
new file mode 100644
index 0000000..881929a
--- /dev/null
+++ b/simonov_nikita_lab_2/.idea/sonarlint/issuestore/index.pb
@@ -0,0 +1,39 @@
+
+Z
+*worker-2/src/FindingLargestNumberFile.java,0\3\03a92d5d92427ae83731739f82560657bd7e1d33
+C
+worker-1/Dockerfile,e\6\e69c92c782a7aaf8d0c509cb120e1ead92c1002a
+C
+worker-2/Dockerfile,8\3\83ed28ddb28df8a1891a8bb18462429f6bf9c67a
+F
+data/awdafgergssdf.txt,a\4\a44778d2018213866a7c7700d98e9b5a0c8bb0d7
+C
+data/sgeagfdsfh.txt,e\e\ee36fd8c882eeb7d494b394d46fbdb34cd105ba9
+?
+data/sdfwef.txt,e\c\ec82235829a15dc40a553c3fb4b789f1198f4425
+V
+&worker-1/src/FindShortestFileName.java,9\4\94c92b7b02fdd2531b355bac9c83b9f486abe86c
+9
+ README.md,8\e\8ec9a00bfd09b3190ac6b22251dbb1aa95a0579d
+B
+docker-compose.yml,3\5\35b8c13cf2eb2a194eada000eb310d65aed53b2a
+S
+#worker-3/src/CheckingTheResult.java,9\2\92c4d1ca65baa16d74df9bf3d5b6393a87742c07
+C
+worker-3/Dockerfile,6\b\6b3c7820a55d6a07cc9d46efa42c98ebf1f45354
+E
+worker-3/worker-2.iml,5\0\502eff2775ccdc92a339926170a76685b0db195b
+=
+
service1.yaml,d\e\de9026ba42f1709def40029bb15d3a5c09210226
+=
+
service2.yaml,f\b\fbfd3efcc3c334f991162df3f9840f75dd4ac2b6
+=
+
service3.yaml,d\1\d1d02446e29911114aa8461a6d339c8a9b233292
+C
+worker-3/.gitignore,e\d\ed0d20f6dbf0bbada896a9094ff70ec66340a7a2
+G
+result/check_result.txt,7\a\7a3b22c128c191dcaf132b29cd87547571c08e36
+A
+result/result.txt,f\4\f4cf0185d9befba3e1246fec6ecc3fb42d5b2f98
+?
+result/data.txt,a\d\adb97326bef634ca60e90d62c3e817831b0e62ad
\ No newline at end of file
diff --git a/simonov_nikita_lab_2/.idea/sonarlint/securityhotspotstore/0/3/03a92d5d92427ae83731739f82560657bd7e1d33 b/simonov_nikita_lab_2/.idea/sonarlint/securityhotspotstore/0/3/03a92d5d92427ae83731739f82560657bd7e1d33
new file mode 100644
index 0000000..e69de29
diff --git a/simonov_nikita_lab_2/.idea/sonarlint/securityhotspotstore/3/5/35b8c13cf2eb2a194eada000eb310d65aed53b2a b/simonov_nikita_lab_2/.idea/sonarlint/securityhotspotstore/3/5/35b8c13cf2eb2a194eada000eb310d65aed53b2a
new file mode 100644
index 0000000..e69de29
diff --git a/simonov_nikita_lab_2/.idea/sonarlint/securityhotspotstore/5/0/502eff2775ccdc92a339926170a76685b0db195b b/simonov_nikita_lab_2/.idea/sonarlint/securityhotspotstore/5/0/502eff2775ccdc92a339926170a76685b0db195b
new file mode 100644
index 0000000..e69de29
diff --git a/simonov_nikita_lab_2/.idea/sonarlint/securityhotspotstore/6/b/6b3c7820a55d6a07cc9d46efa42c98ebf1f45354 b/simonov_nikita_lab_2/.idea/sonarlint/securityhotspotstore/6/b/6b3c7820a55d6a07cc9d46efa42c98ebf1f45354
new file mode 100644
index 0000000..e69de29
diff --git a/simonov_nikita_lab_2/.idea/sonarlint/securityhotspotstore/7/a/7a3b22c128c191dcaf132b29cd87547571c08e36 b/simonov_nikita_lab_2/.idea/sonarlint/securityhotspotstore/7/a/7a3b22c128c191dcaf132b29cd87547571c08e36
new file mode 100644
index 0000000..e69de29
diff --git a/simonov_nikita_lab_2/.idea/sonarlint/securityhotspotstore/8/3/83ed28ddb28df8a1891a8bb18462429f6bf9c67a b/simonov_nikita_lab_2/.idea/sonarlint/securityhotspotstore/8/3/83ed28ddb28df8a1891a8bb18462429f6bf9c67a
new file mode 100644
index 0000000..e69de29
diff --git a/simonov_nikita_lab_2/.idea/sonarlint/securityhotspotstore/8/e/8ec9a00bfd09b3190ac6b22251dbb1aa95a0579d b/simonov_nikita_lab_2/.idea/sonarlint/securityhotspotstore/8/e/8ec9a00bfd09b3190ac6b22251dbb1aa95a0579d
new file mode 100644
index 0000000..e69de29
diff --git a/simonov_nikita_lab_2/.idea/sonarlint/securityhotspotstore/9/2/92c4d1ca65baa16d74df9bf3d5b6393a87742c07 b/simonov_nikita_lab_2/.idea/sonarlint/securityhotspotstore/9/2/92c4d1ca65baa16d74df9bf3d5b6393a87742c07
new file mode 100644
index 0000000..e69de29
diff --git a/simonov_nikita_lab_2/.idea/sonarlint/securityhotspotstore/9/4/94c92b7b02fdd2531b355bac9c83b9f486abe86c b/simonov_nikita_lab_2/.idea/sonarlint/securityhotspotstore/9/4/94c92b7b02fdd2531b355bac9c83b9f486abe86c
new file mode 100644
index 0000000..e69de29
diff --git a/simonov_nikita_lab_2/.idea/sonarlint/securityhotspotstore/a/4/a44778d2018213866a7c7700d98e9b5a0c8bb0d7 b/simonov_nikita_lab_2/.idea/sonarlint/securityhotspotstore/a/4/a44778d2018213866a7c7700d98e9b5a0c8bb0d7
new file mode 100644
index 0000000..e69de29
diff --git a/simonov_nikita_lab_2/.idea/sonarlint/securityhotspotstore/a/d/adb97326bef634ca60e90d62c3e817831b0e62ad b/simonov_nikita_lab_2/.idea/sonarlint/securityhotspotstore/a/d/adb97326bef634ca60e90d62c3e817831b0e62ad
new file mode 100644
index 0000000..e69de29
diff --git a/simonov_nikita_lab_2/.idea/sonarlint/securityhotspotstore/d/1/d1d02446e29911114aa8461a6d339c8a9b233292 b/simonov_nikita_lab_2/.idea/sonarlint/securityhotspotstore/d/1/d1d02446e29911114aa8461a6d339c8a9b233292
new file mode 100644
index 0000000..e69de29
diff --git a/simonov_nikita_lab_2/.idea/sonarlint/securityhotspotstore/d/e/de9026ba42f1709def40029bb15d3a5c09210226 b/simonov_nikita_lab_2/.idea/sonarlint/securityhotspotstore/d/e/de9026ba42f1709def40029bb15d3a5c09210226
new file mode 100644
index 0000000..e69de29
diff --git a/simonov_nikita_lab_2/.idea/sonarlint/securityhotspotstore/e/6/e69c92c782a7aaf8d0c509cb120e1ead92c1002a b/simonov_nikita_lab_2/.idea/sonarlint/securityhotspotstore/e/6/e69c92c782a7aaf8d0c509cb120e1ead92c1002a
new file mode 100644
index 0000000..e69de29
diff --git a/simonov_nikita_lab_2/.idea/sonarlint/securityhotspotstore/e/c/ec82235829a15dc40a553c3fb4b789f1198f4425 b/simonov_nikita_lab_2/.idea/sonarlint/securityhotspotstore/e/c/ec82235829a15dc40a553c3fb4b789f1198f4425
new file mode 100644
index 0000000..e69de29
diff --git a/simonov_nikita_lab_2/.idea/sonarlint/securityhotspotstore/e/d/ed0d20f6dbf0bbada896a9094ff70ec66340a7a2 b/simonov_nikita_lab_2/.idea/sonarlint/securityhotspotstore/e/d/ed0d20f6dbf0bbada896a9094ff70ec66340a7a2
new file mode 100644
index 0000000..e69de29
diff --git a/simonov_nikita_lab_2/.idea/sonarlint/securityhotspotstore/e/e/ee36fd8c882eeb7d494b394d46fbdb34cd105ba9 b/simonov_nikita_lab_2/.idea/sonarlint/securityhotspotstore/e/e/ee36fd8c882eeb7d494b394d46fbdb34cd105ba9
new file mode 100644
index 0000000..e69de29
diff --git a/simonov_nikita_lab_2/.idea/sonarlint/securityhotspotstore/f/4/f4cf0185d9befba3e1246fec6ecc3fb42d5b2f98 b/simonov_nikita_lab_2/.idea/sonarlint/securityhotspotstore/f/4/f4cf0185d9befba3e1246fec6ecc3fb42d5b2f98
new file mode 100644
index 0000000..e69de29
diff --git a/simonov_nikita_lab_2/.idea/sonarlint/securityhotspotstore/f/b/fbfd3efcc3c334f991162df3f9840f75dd4ac2b6 b/simonov_nikita_lab_2/.idea/sonarlint/securityhotspotstore/f/b/fbfd3efcc3c334f991162df3f9840f75dd4ac2b6
new file mode 100644
index 0000000..e69de29
diff --git a/simonov_nikita_lab_2/.idea/sonarlint/securityhotspotstore/index.pb b/simonov_nikita_lab_2/.idea/sonarlint/securityhotspotstore/index.pb
new file mode 100644
index 0000000..a5126dc
--- /dev/null
+++ b/simonov_nikita_lab_2/.idea/sonarlint/securityhotspotstore/index.pb
@@ -0,0 +1,39 @@
+
+C
+worker-1/Dockerfile,e\6\e69c92c782a7aaf8d0c509cb120e1ead92c1002a
+C
+worker-2/Dockerfile,8\3\83ed28ddb28df8a1891a8bb18462429f6bf9c67a
+Z
+*worker-2/src/FindingLargestNumberFile.java,0\3\03a92d5d92427ae83731739f82560657bd7e1d33
+F
+data/awdafgergssdf.txt,a\4\a44778d2018213866a7c7700d98e9b5a0c8bb0d7
+?
+data/sdfwef.txt,e\c\ec82235829a15dc40a553c3fb4b789f1198f4425
+C
+data/sgeagfdsfh.txt,e\e\ee36fd8c882eeb7d494b394d46fbdb34cd105ba9
+B
+docker-compose.yml,3\5\35b8c13cf2eb2a194eada000eb310d65aed53b2a
+V
+&worker-1/src/FindShortestFileName.java,9\4\94c92b7b02fdd2531b355bac9c83b9f486abe86c
+9
+ README.md,8\e\8ec9a00bfd09b3190ac6b22251dbb1aa95a0579d
+C
+worker-3/Dockerfile,6\b\6b3c7820a55d6a07cc9d46efa42c98ebf1f45354
+S
+#worker-3/src/CheckingTheResult.java,9\2\92c4d1ca65baa16d74df9bf3d5b6393a87742c07
+=
+
service1.yaml,d\e\de9026ba42f1709def40029bb15d3a5c09210226
+=
+
service2.yaml,f\b\fbfd3efcc3c334f991162df3f9840f75dd4ac2b6
+=
+
service3.yaml,d\1\d1d02446e29911114aa8461a6d339c8a9b233292
+E
+worker-3/worker-2.iml,5\0\502eff2775ccdc92a339926170a76685b0db195b
+C
+worker-3/.gitignore,e\d\ed0d20f6dbf0bbada896a9094ff70ec66340a7a2
+G
+result/check_result.txt,7\a\7a3b22c128c191dcaf132b29cd87547571c08e36
+A
+result/result.txt,f\4\f4cf0185d9befba3e1246fec6ecc3fb42d5b2f98
+?
+result/data.txt,a\d\adb97326bef634ca60e90d62c3e817831b0e62ad
\ No newline at end of file
diff --git a/simonov_nikita_lab_2/.idea/uiDesigner.xml b/simonov_nikita_lab_2/.idea/uiDesigner.xml
new file mode 100644
index 0000000..2b63946
--- /dev/null
+++ b/simonov_nikita_lab_2/.idea/uiDesigner.xml
@@ -0,0 +1,124 @@
+
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+
+
+
\ No newline at end of file
diff --git a/simonov_nikita_lab_2/README.md b/simonov_nikita_lab_2/README.md
new file mode 100644
index 0000000..00b264e
--- /dev/null
+++ b/simonov_nikita_lab_2/README.md
@@ -0,0 +1,117 @@
+# Лабораторная работа №2
+
+Цель: изучение техники создания простого распределенного приложения.
+
+Задачи:
+
+- Согласно вышему варианту (выбирайте любой) разработать два приложения такие, что результат первого является исходными данными для второго.
+- Изучить файлы сборки образов docker и разработать их для созданных приложений.
+- Собрать файл docker-compose.yml для запуска приложений. Разобраться с монтированием каталогов из хост-системы.
+- Правильно закоммитить результат без лишних файлов.
+- Оформить pull request по правилам и отправить его на проверку.
+
+# Разработка двух приложений
+
+Вариант первого приложения(worker-1): 5 - Ищет в каталоге /var/data файл с самым коротким названием и перекладывает его в /var/result/data.txt
+Вариант второго приложения(worker-2): 1 - Ищет набольшее число из файла /var/data/data.txt и сохраняет его вторую степень в /var/result/result.txt
+
+## Структура проекта
+
+![](/screens/Screenshot_1.png)
+
+# Работа программы
+
+- Создание двух директорий: worker-1 и worker-2 для реализаций двух программ.
+- Описание Dockerfile для создания образов для обоих программ.
+
+## Docker файл для первого сервиса
+
+```yml
+# Используем образ с Java
+FROM openjdk:21
+
+# Создаем директории для данных и результата внутри контейнера
+RUN mkdir /var/data
+RUN mkdir /var/result
+
+# Создаем директорию приложения внутри контейнера
+WORKDIR /app
+
+# Копируем исходные файлы вашего Java-приложения внутрь контейнера
+COPY src /app/src
+
+# Компилируем Java-код
+RUN javac /app/src/FindShortestFileName.java
+
+# Запускаем Java-приложение
+CMD ["java", "-cp", "/app/src", "FindShortestFileName"]
+```
+
+## Docker файл для второго сервиса
+
+```yml
+# Используем образ с Java
+FROM openjdk:21
+
+ # Создаем директории для данных и результата внутри контейнера
+RUN mkdir /var/data
+RUN mkdir /var/result
+
+ # Создаем директорию приложения внутри контейнера
+WORKDIR /app
+
+ # Копируем исходные файлы вашего Java-приложения внутрь контейнера
+COPY src /app/src
+
+Компилируем Java-код
+RUN javac /app/src/FindingLargestNumberFile.java
+
+ # Запускаем Java-приложение
+CMD ["java", "-cp", "/app/src", "FindingLargestNumberFile"]
+```
+
+## Docker-compose
+
+```yml
+services:
+ worker-1:
+ build:
+ context: /worker-1
+ dockerfile: Dockerfile
+ volumes:
+ - D:\рил\simonov_nikita_lab_2\data:/var/data
+ - D:\рил\simonov_nikita_lab_2\result:/var/result
+ worker-2:
+ build:
+ context: /worker-2
+ dockerfile: Dockerfile
+ volumes:
+ - D:\рил\simonov_nikita_lab_2\data:/var/data
+ - D:\рил\simonov_nikita_lab_2\result:/var/result
+ depends_on:
+ - worker-1
+```
+
+## Исходные файлы
+
+![](/screens/Screenshot_5.png)
+
+## После запуска контейнера создаются файлы `data.txt` и `result.txt`:
+
+![](/screens/Screenshot_2.png)
+
+- `data.txt`
+
+![](/screens/Screenshot_3.png)
+
+- `result.txt`
+
+![](/screens/Screenshot_4.png)
+
+# Запушенный контейнер
+
+![](/screens/Screenshot_6.png)
+
+# Ссылка на видео
+
+https://drive.google.com/file/d/1kPXcYOX0bRmjzBbg8GBWp0JfFWb2rUGm/view?usp=sharing
diff --git a/simonov_nikita_lab_2/data/Shugar_Dady.txt b/simonov_nikita_lab_2/data/Shugar_Dady.txt
new file mode 100644
index 0000000..229a860
--- /dev/null
+++ b/simonov_nikita_lab_2/data/Shugar_Dady.txt
@@ -0,0 +1,9 @@
+44
+65
+23
+90
+98
+65
+32
+87
+
diff --git a/simonov_nikita_lab_2/data/Uncle_Bob.txt b/simonov_nikita_lab_2/data/Uncle_Bob.txt
new file mode 100644
index 0000000..abdfc63
--- /dev/null
+++ b/simonov_nikita_lab_2/data/Uncle_Bob.txt
@@ -0,0 +1,8 @@
+12
+34
+56
+13
+11
+6
+4
+7
\ No newline at end of file
diff --git a/simonov_nikita_lab_2/data/other_mom.txt b/simonov_nikita_lab_2/data/other_mom.txt
new file mode 100644
index 0000000..df6c9b1
--- /dev/null
+++ b/simonov_nikita_lab_2/data/other_mom.txt
@@ -0,0 +1,11 @@
+67
+23
+56
+89
+1
+48
+44
+90
+12
+32
+78
diff --git a/simonov_nikita_lab_2/docker-compose.yml b/simonov_nikita_lab_2/docker-compose.yml
new file mode 100644
index 0000000..ff14c10
--- /dev/null
+++ b/simonov_nikita_lab_2/docker-compose.yml
@@ -0,0 +1,17 @@
+services:
+ worker-1:
+ build:
+ context: /worker-1
+ dockerfile: Dockerfile
+ volumes:
+ - D:\рил\simonov_nikita_lab_2\data:/var/data
+ - D:\рил\simonov_nikita_lab_2\result:/var/result
+ worker-2:
+ build:
+ context: /worker-2
+ dockerfile: Dockerfile
+ volumes:
+ - D:\рил\simonov_nikita_lab_2\data:/var/data
+ - D:\рил\simonov_nikita_lab_2\result:/var/result
+ depends_on:
+ - worker-1
\ No newline at end of file
diff --git a/simonov_nikita_lab_2/result/data.txt b/simonov_nikita_lab_2/result/data.txt
new file mode 100644
index 0000000..df6c9b1
--- /dev/null
+++ b/simonov_nikita_lab_2/result/data.txt
@@ -0,0 +1,11 @@
+67
+23
+56
+89
+1
+48
+44
+90
+12
+32
+78
diff --git a/simonov_nikita_lab_2/result/result.txt b/simonov_nikita_lab_2/result/result.txt
new file mode 100644
index 0000000..78452b4
--- /dev/null
+++ b/simonov_nikita_lab_2/result/result.txt
@@ -0,0 +1 @@
+8100.0
\ No newline at end of file
diff --git a/simonov_nikita_lab_2/screens/Screenshot_1.png b/simonov_nikita_lab_2/screens/Screenshot_1.png
new file mode 100644
index 0000000..31ea6de
Binary files /dev/null and b/simonov_nikita_lab_2/screens/Screenshot_1.png differ
diff --git a/simonov_nikita_lab_2/screens/Screenshot_2.png b/simonov_nikita_lab_2/screens/Screenshot_2.png
new file mode 100644
index 0000000..2b68d66
Binary files /dev/null and b/simonov_nikita_lab_2/screens/Screenshot_2.png differ
diff --git a/simonov_nikita_lab_2/screens/Screenshot_3.png b/simonov_nikita_lab_2/screens/Screenshot_3.png
new file mode 100644
index 0000000..f20b2db
Binary files /dev/null and b/simonov_nikita_lab_2/screens/Screenshot_3.png differ
diff --git a/simonov_nikita_lab_2/screens/Screenshot_4.png b/simonov_nikita_lab_2/screens/Screenshot_4.png
new file mode 100644
index 0000000..df6a6b3
Binary files /dev/null and b/simonov_nikita_lab_2/screens/Screenshot_4.png differ
diff --git a/simonov_nikita_lab_2/screens/Screenshot_5.png b/simonov_nikita_lab_2/screens/Screenshot_5.png
new file mode 100644
index 0000000..122f89b
Binary files /dev/null and b/simonov_nikita_lab_2/screens/Screenshot_5.png differ
diff --git a/simonov_nikita_lab_2/screens/Screenshot_6.png b/simonov_nikita_lab_2/screens/Screenshot_6.png
new file mode 100644
index 0000000..02e529a
Binary files /dev/null and b/simonov_nikita_lab_2/screens/Screenshot_6.png differ
diff --git a/simonov_nikita_lab_2/worker-1/.gitignore b/simonov_nikita_lab_2/worker-1/.gitignore
new file mode 100644
index 0000000..f68d109
--- /dev/null
+++ b/simonov_nikita_lab_2/worker-1/.gitignore
@@ -0,0 +1,29 @@
+### IntelliJ IDEA ###
+out/
+!**/src/main/**/out/
+!**/src/test/**/out/
+
+### Eclipse ###
+.apt_generated
+.classpath
+.factorypath
+.project
+.settings
+.springBeans
+.sts4-cache
+bin/
+!**/src/main/**/bin/
+!**/src/test/**/bin/
+
+### NetBeans ###
+/nbproject/private/
+/nbbuild/
+/dist/
+/nbdist/
+/.nb-gradle/
+
+### VS Code ###
+.vscode/
+
+### Mac OS ###
+.DS_Store
\ No newline at end of file
diff --git a/simonov_nikita_lab_2/worker-1/.idea/.gitignore b/simonov_nikita_lab_2/worker-1/.idea/.gitignore
new file mode 100644
index 0000000..13566b8
--- /dev/null
+++ b/simonov_nikita_lab_2/worker-1/.idea/.gitignore
@@ -0,0 +1,8 @@
+# Default ignored files
+/shelf/
+/workspace.xml
+# Editor-based HTTP Client requests
+/httpRequests/
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml
diff --git a/simonov_nikita_lab_2/worker-1/.idea/misc.xml b/simonov_nikita_lab_2/worker-1/.idea/misc.xml
new file mode 100644
index 0000000..07115cd
--- /dev/null
+++ b/simonov_nikita_lab_2/worker-1/.idea/misc.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/simonov_nikita_lab_2/worker-1/.idea/modules.xml b/simonov_nikita_lab_2/worker-1/.idea/modules.xml
new file mode 100644
index 0000000..98d26e9
--- /dev/null
+++ b/simonov_nikita_lab_2/worker-1/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/simonov_nikita_lab_2/worker-1/Dockerfile b/simonov_nikita_lab_2/worker-1/Dockerfile
new file mode 100644
index 0000000..06c62f8
--- /dev/null
+++ b/simonov_nikita_lab_2/worker-1/Dockerfile
@@ -0,0 +1,18 @@
+# Используем образ с Java
+FROM openjdk:21
+
+# Создаем директории для данных и результата внутри контейнера
+RUN mkdir /var/data
+RUN mkdir /var/result
+
+# Создаем директорию приложения внутри контейнера
+WORKDIR /app
+
+# Копируем исходные файлы вашего Java-приложения внутрь контейнера
+COPY src /app/src
+
+# Компилируем Java-код
+RUN javac /app/src/FindShortestFileName.java
+
+# Запускаем Java-приложение
+CMD ["java", "-cp", "/app/src", "FindShortestFileName"]
diff --git a/simonov_nikita_lab_2/worker-1/src/FindShortestFileName.java b/simonov_nikita_lab_2/worker-1/src/FindShortestFileName.java
new file mode 100644
index 0000000..7d57364
--- /dev/null
+++ b/simonov_nikita_lab_2/worker-1/src/FindShortestFileName.java
@@ -0,0 +1,71 @@
+import java.io.IOException;
+import java.nio.file.*;
+import java.util.List;
+
+/**
+ * Программа для перемещения файла с самым коротким именем из одной директории в другую.
+ */
+public class FindShortestFileName {
+
+ /**
+ * Точка входа в программу.
+ */
+ public static void main(String[] args) {
+ // Указываем пути исходной и целевой директорий, а также путь результирующего файла
+ String sourceDirectory = "/var/data";
+ String destinationDirectory = "/var/result";
+ String resultFile = destinationDirectory + "/data.txt";
+
+ try {
+ // Получаем список файлов в исходной директории
+ List files = getFilesInDirectory(sourceDirectory);
+
+ if (!files.isEmpty()) {
+ // Находим файл с самым коротким именем
+ Path shortestFileName = findShortestFileName(files);
+
+ // Копируем найденный файл в целевую директорию
+ Files.copy(shortestFileName, Paths.get(resultFile), StandardCopyOption.REPLACE_EXISTING);
+
+ System.out.println("Файл " + shortestFileName.getFileName() + " был скопирован в " + resultFile);
+ } else {
+ System.out.println("В исходной директории нет файлов для копирования.");
+ }
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * Получает список файлов в указанной директории.
+ *
+ * @param directory Путь к директории.
+ * @return Список файлов в директории.
+ * @throws IOException В случае ошибок при чтении директории.
+ */
+ private static List getFilesInDirectory(String directory) throws IOException {
+ try (DirectoryStream stream = Files.newDirectoryStream(Paths.get(directory))) {
+ List fileList = new java.util.ArrayList<>();
+ for (Path entry : stream) {
+ fileList.add(entry);
+ }
+ return fileList;
+ }
+ }
+
+ /**
+ * Находит файл с самым коротким именем в списке.
+ *
+ * @param files Список файлов.
+ * @return Путь к файлу с самым коротким именем.
+ */
+ private static Path findShortestFileName(List files) {
+ Path shortestFile = files.get(0);
+ for (Path file : files) {
+ if (file.getFileName().toString().length() < shortestFile.getFileName().toString().length()) {
+ shortestFile = file;
+ }
+ }
+ return shortestFile;
+ }
+}
diff --git a/simonov_nikita_lab_2/worker-1/worker-1.iml b/simonov_nikita_lab_2/worker-1/worker-1.iml
new file mode 100644
index 0000000..d89d290
--- /dev/null
+++ b/simonov_nikita_lab_2/worker-1/worker-1.iml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/simonov_nikita_lab_2/worker-2/.gitignore b/simonov_nikita_lab_2/worker-2/.gitignore
new file mode 100644
index 0000000..f68d109
--- /dev/null
+++ b/simonov_nikita_lab_2/worker-2/.gitignore
@@ -0,0 +1,29 @@
+### IntelliJ IDEA ###
+out/
+!**/src/main/**/out/
+!**/src/test/**/out/
+
+### Eclipse ###
+.apt_generated
+.classpath
+.factorypath
+.project
+.settings
+.springBeans
+.sts4-cache
+bin/
+!**/src/main/**/bin/
+!**/src/test/**/bin/
+
+### NetBeans ###
+/nbproject/private/
+/nbbuild/
+/dist/
+/nbdist/
+/.nb-gradle/
+
+### VS Code ###
+.vscode/
+
+### Mac OS ###
+.DS_Store
\ No newline at end of file
diff --git a/simonov_nikita_lab_2/worker-2/.idea/.gitignore b/simonov_nikita_lab_2/worker-2/.idea/.gitignore
new file mode 100644
index 0000000..13566b8
--- /dev/null
+++ b/simonov_nikita_lab_2/worker-2/.idea/.gitignore
@@ -0,0 +1,8 @@
+# Default ignored files
+/shelf/
+/workspace.xml
+# Editor-based HTTP Client requests
+/httpRequests/
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml
diff --git a/simonov_nikita_lab_2/worker-2/.idea/misc.xml b/simonov_nikita_lab_2/worker-2/.idea/misc.xml
new file mode 100644
index 0000000..07115cd
--- /dev/null
+++ b/simonov_nikita_lab_2/worker-2/.idea/misc.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/simonov_nikita_lab_2/worker-2/.idea/modules.xml b/simonov_nikita_lab_2/worker-2/.idea/modules.xml
new file mode 100644
index 0000000..ba047c4
--- /dev/null
+++ b/simonov_nikita_lab_2/worker-2/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/simonov_nikita_lab_2/worker-2/Dockerfile b/simonov_nikita_lab_2/worker-2/Dockerfile
new file mode 100644
index 0000000..ca43d4a
--- /dev/null
+++ b/simonov_nikita_lab_2/worker-2/Dockerfile
@@ -0,0 +1,18 @@
+# Используем образ с Java
+FROM openjdk:21
+
+# Создаем директории для данных и результата внутри контейнера
+RUN mkdir /var/data
+RUN mkdir /var/result
+
+# Создаем директорию приложения внутри контейнера
+WORKDIR /app
+
+# Копируем исходные файлы вашего Java-приложения внутрь контейнера
+COPY src /app/src
+
+ Компилируем Java-код
+RUN javac /app/src/FindingLargestNumberFile.java
+
+# Запускаем Java-приложение
+CMD ["java", "-cp", "/app/src", "FindingLargestNumberFile"]
diff --git a/simonov_nikita_lab_2/worker-2/src/FindingLargestNumberFile.java b/simonov_nikita_lab_2/worker-2/src/FindingLargestNumberFile.java
new file mode 100644
index 0000000..e1007c6
--- /dev/null
+++ b/simonov_nikita_lab_2/worker-2/src/FindingLargestNumberFile.java
@@ -0,0 +1,56 @@
+import java.io.BufferedReader;
+import java.io.FileReader;
+import java.io.FileWriter;
+import java.io.IOException;
+
+/**
+ * Программа для поиска наибольшего числа в файле, вычисления его второй степени и сохранения результата в другом файле.
+ */
+public class FindingLargestNumberFile {
+
+ /**
+ * Точка входа в программу.
+ */
+ public static void main(String[] args) {
+ // Указываем пути к исходному и результативному файлам
+ String sourceFilePath = "/var/result/data.txt";
+ String resultFilePath = "/var/result/result.txt";
+
+ try (BufferedReader reader = new BufferedReader(new FileReader(sourceFilePath))) {
+ String line;
+ double largestNumber = Double.MIN_VALUE;
+
+ // Читаем файл построчно и находим наибольшее число
+ while ((line = reader.readLine()) != null) {
+ try {
+ double number = Double.parseDouble(line);
+ if (number > largestNumber) {
+ largestNumber = number;
+ }
+ } catch (NumberFormatException e) {
+ // Пропускаем строки, которые не могут быть преобразованы в числа
+ }
+ }
+
+ if (largestNumber != Double.MIN_VALUE) {
+ // Вычисляем вторую степень наибольшего числа
+ double square = Math.pow(largestNumber, 2);
+
+ // Записываем результат в новый файл
+ try (FileWriter writer = new FileWriter(resultFilePath)) {
+ writer.write(Double.toString(square));
+ }
+
+ // Выводим результаты на экран
+ System.out.println("Наибольшее число в файле: " + largestNumber);
+ System.out.println("Вторая степень наибольшего числа: " + square);
+ System.out.println("Результат сохранен в " + resultFilePath);
+ } else {
+ System.out.println("Файл не содержит чисел.");
+ }
+
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+}
diff --git a/simonov_nikita_lab_2/worker-2/worker-2.iml b/simonov_nikita_lab_2/worker-2/worker-2.iml
new file mode 100644
index 0000000..9facd37
--- /dev/null
+++ b/simonov_nikita_lab_2/worker-2/worker-2.iml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file