From 8c86d4983edcf27ed101f0d6877701afc6c221f5 Mon Sep 17 00:00:00 2001 From: Ivan Perepelitsa <75025449+ivanp-bmstu@users.noreply.github.com> Date: Wed, 27 Jul 2022 15:19:36 +0300 Subject: [PATCH 1/9] [+] initial commit for documentation --- doc-for-first-part-of-task.md | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 doc-for-first-part-of-task.md diff --git a/doc-for-first-part-of-task.md b/doc-for-first-part-of-task.md new file mode 100644 index 0000000..69930f6 --- /dev/null +++ b/doc-for-first-part-of-task.md @@ -0,0 +1,29 @@ +# Документация для первой (минимальной) части тестового задания + +В репозитории расположено простое скриптовое приложение на языке программирования *(далее по тексту, ЯП)* PHP, с использованием фреймворка [Laravel](https://laravel.com/) сл. версий: + +* Laravel v9.17.0 (PHP v8.1.7) + +Для данного приложения были написаны Dockerfile и .dockerignore файл. + +#### Для сборки образа в терминале перейдите в директорию приложения и введите следующую команду: + +`sudo docker build .` + +ID образа (image) будет выведен по окончанию работы команды, однако, чтобы узнать его, можно ввести: + +`sudo docker image ls` + +и найти последний созданный по времени. + +#### Для запуска контейнера на основе получившегося образа введите там же: + +`sudo docker run -it -p 8000:8000 my_image_id` + +где +* `my_image_id` - ID образа, созданного командой `build`, +* `-i` - сокращение для `--interactive`, данный флаг позволяет потоку STDIN поддерживаться в открытом состоянии, даже если контейнер не подключен к STDIN, +* `-t` - сокращение для `--tty`, данный флаг выделяет псевдотерминал, который соединяет используемый терминал с потоками STDIN и STDOUT контейнера, +* `-p` - сокращение для `--port`, данный флаг представляет собой конструкцию `-p n:m`, которая перенаправляет порт Docker `n` на порт `m` компьютера, на котором выполняется контейнер. + +Для обращение к работающему в контейнере приложению необходимо ввести в браузере `http://localhost:8000`. From 5382edab681478c4097128eb2e52dc84cd544492 Mon Sep 17 00:00:00 2001 From: Ivan Perepelitsa <75025449+ivanp-bmstu@users.noreply.github.com> Date: Wed, 27 Jul 2022 15:21:23 +0300 Subject: [PATCH 2/9] [+]initial commit for Dockerfile --- Dockerfile | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 Dockerfile diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..bb2d3bc --- /dev/null +++ b/Dockerfile @@ -0,0 +1,11 @@ +FROM composer:2.3.9 as builder +COPY . /srv/app +WORKDIR /srv/app +RUN composer install + +FROM php:8.1.7-fpm-alpine3.16 +MAINTAINER "i.perepelica@devspark.ru" +COPY --from=builder /srv/app /srv/app +WORKDIR /srv/app +RUN cp .env.example .env +CMD php artisan serve --host=0.0.0.0 From 316b6216a1035d0fe5eb563233af42a14595d67e Mon Sep 17 00:00:00 2001 From: Ivan Perepelitsa <75025449+ivanp-bmstu@users.noreply.github.com> Date: Wed, 27 Jul 2022 15:25:44 +0300 Subject: [PATCH 3/9] [+] initial commit for .dockerignore --- .dockerignore | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 .dockerignore diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..a9b7095 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,7 @@ +.git* +.idea* +*.md +logs/ +Dockerfile +.dockerignore +docker-compose.yml From 3fdb46cb658e7f898f58d7d02b18d79fa188dd48 Mon Sep 17 00:00:00 2001 From: Ivan Perepelitsa <75025449+ivanp-bmstu@users.noreply.github.com> Date: Thu, 28 Jul 2022 16:08:37 +0300 Subject: [PATCH 4/9] [-] fix: delete 'sudo' for docker comands --- doc-for-first-part-of-task.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/doc-for-first-part-of-task.md b/doc-for-first-part-of-task.md index 69930f6..f05660e 100644 --- a/doc-for-first-part-of-task.md +++ b/doc-for-first-part-of-task.md @@ -8,17 +8,17 @@ #### Для сборки образа в терминале перейдите в директорию приложения и введите следующую команду: -`sudo docker build .` +`docker build .` ID образа (image) будет выведен по окончанию работы команды, однако, чтобы узнать его, можно ввести: -`sudo docker image ls` +`docker image ls` и найти последний созданный по времени. #### Для запуска контейнера на основе получившегося образа введите там же: -`sudo docker run -it -p 8000:8000 my_image_id` +`docker run -it -p 8000:8000 my_image_id` где * `my_image_id` - ID образа, созданного командой `build`, From 229d8f9c9e120efb1ee1fb252bab6ed3c2df891e Mon Sep 17 00:00:00 2001 From: Ivan Perepelitsa <75025449+ivanp-bmstu@users.noreply.github.com> Date: Thu, 1 Sep 2022 15:17:08 +0300 Subject: [PATCH 5/9] [+] initial commit --- Documentation.md | 45 +++++++++++++++++++++++++++++++++++++++++++++ docker-compose.yml | 21 +++++++++++++++++++++ 2 files changed, 66 insertions(+) create mode 100644 Documentation.md create mode 100644 docker-compose.yml diff --git a/Documentation.md b/Documentation.md new file mode 100644 index 0000000..3fedf7a --- /dev/null +++ b/Documentation.md @@ -0,0 +1,45 @@ +# Документация для первой (минимальной) части тестового задания + +В репозитории расположено простое скриптовое приложение на языке программирования *(далее по тексту, ЯП)* PHP, с использованием фреймворка [Laravel](https://laravel.com/) сл. версий: + +* Laravel v9.17.0 (PHP v8.1.7) + +Для данного приложения были написаны `Dockerfile` и `.dockerignore` файл. + +#### Для сборки образа в терминале перейдите в директорию приложения и введите следующую команду: + +`docker build .` + +ID образа (image) будет выведен по окончанию работы команды, однако, чтобы узнать его, можно ввести: + +`docker image ls` + +и найти последний созданный по времени. + +#### Для запуска контейнера на основе получившегося образа введите там же: + +`docker run -it -p 8000:8000 my_image_id` + +где +* `my_image_id` - ID образа, созданного командой `build`, +* `-i` - сокращение для `--interactive`, данный флаг позволяет потоку STDIN поддерживаться в открытом состоянии, даже если контейнер не подключен к STDIN, +* `-t` - сокращение для `--tty`, данный флаг выделяет псевдотерминал, который соединяет используемый терминал с потоками STDIN и STDOUT контейнера, +* `-p` - сокращение для `--port`, данный флаг представляет собой конструкцию `-p n:m`, которая перенаправляет порт Docker `n` на порт `m` компьютера, на котором выполняется контейнер. + +Для обращение к работающему в контейнере приложению необходимо ввести в браузере `http://localhost:8000`. + +# Документация для второй (дополнительной) части тестового задания + +Приложение было дополнено `docker-compose.yml` и `nginx.conf` файлами. + +#### Для запуска приложения через docker-compose необходимо ввести, находясь в директории с приложением, следующую команду: + +`docker compose up --build` + +где +* `up` - создает и запускает контейнеры, +* `build` - собирает образы для контейнеров. + +Для обращение к работающему в контейнере приложению необходимо ввести в браузере `http://localhost:8000`. +Или `curl localhost:8000` в терминале. + diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..bab224a --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,21 @@ +--- +version: '3.9' + +services: + php: + build: + context: . + container_name: php_fpm + env_file: + - .env.example + + nginx: + image: nginx:mainline-alpine + container_name: nginx_proxy + volumes: + - ./public:/srv/app/public + - ./nginx.conf:/etc/nginx/nginx.conf:ro + links: + - php + ports: + - "8000:8000" From 8c07bc01f7a2f1da12cc9c68b85247bb6a08c7d8 Mon Sep 17 00:00:00 2001 From: Ivan Perepelitsa <75025449+ivanp-bmstu@users.noreply.github.com> Date: Thu, 1 Sep 2022 15:18:35 +0300 Subject: [PATCH 6/9] [-] delete --- doc-for-first-part-of-task.md | 29 ----------------------------- 1 file changed, 29 deletions(-) delete mode 100644 doc-for-first-part-of-task.md diff --git a/doc-for-first-part-of-task.md b/doc-for-first-part-of-task.md deleted file mode 100644 index f05660e..0000000 --- a/doc-for-first-part-of-task.md +++ /dev/null @@ -1,29 +0,0 @@ -# Документация для первой (минимальной) части тестового задания - -В репозитории расположено простое скриптовое приложение на языке программирования *(далее по тексту, ЯП)* PHP, с использованием фреймворка [Laravel](https://laravel.com/) сл. версий: - -* Laravel v9.17.0 (PHP v8.1.7) - -Для данного приложения были написаны Dockerfile и .dockerignore файл. - -#### Для сборки образа в терминале перейдите в директорию приложения и введите следующую команду: - -`docker build .` - -ID образа (image) будет выведен по окончанию работы команды, однако, чтобы узнать его, можно ввести: - -`docker image ls` - -и найти последний созданный по времени. - -#### Для запуска контейнера на основе получившегося образа введите там же: - -`docker run -it -p 8000:8000 my_image_id` - -где -* `my_image_id` - ID образа, созданного командой `build`, -* `-i` - сокращение для `--interactive`, данный флаг позволяет потоку STDIN поддерживаться в открытом состоянии, даже если контейнер не подключен к STDIN, -* `-t` - сокращение для `--tty`, данный флаг выделяет псевдотерминал, который соединяет используемый терминал с потоками STDIN и STDOUT контейнера, -* `-p` - сокращение для `--port`, данный флаг представляет собой конструкцию `-p n:m`, которая перенаправляет порт Docker `n` на порт `m` компьютера, на котором выполняется контейнер. - -Для обращение к работающему в контейнере приложению необходимо ввести в браузере `http://localhost:8000`. From e344797c770e40076d02e023dc1d37fc357a9e73 Mon Sep 17 00:00:00 2001 From: Ivan Perepelitsa <75025449+ivanp-bmstu@users.noreply.github.com> Date: Thu, 1 Sep 2022 15:19:20 +0300 Subject: [PATCH 7/9] [+] initial commit --- nginx.conf | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 nginx.conf diff --git a/nginx.conf b/nginx.conf new file mode 100644 index 0000000..2a18a5f --- /dev/null +++ b/nginx.conf @@ -0,0 +1,27 @@ +events { + +} + +http { + + include /etc/nginx/mime.types; + include /etc/nginx/conf.d/*.conf; + + server { + index index.php; + listen 8000; + server_name localhost; + root /srv/app/public; + + location ~ \.php$ { + try_files $uri =404; + fastcgi_pass php:9000; + fastcgi_index index.php; + include fastcgi_params; + include /etc/nginx/fastcgi.conf; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + fastcgi_param QUERY_STRING $query_string; + fastcgi_param PATH_INFO $fastcgi_path_info; + } + } +} From a8e091fbaee7a8c2c8fea33fcc9d67782ff4f71a Mon Sep 17 00:00:00 2001 From: Ivan Perepelitsa <75025449+ivanp-bmstu@users.noreply.github.com> Date: Thu, 1 Sep 2022 15:20:12 +0300 Subject: [PATCH 8/9] [*] update --- Dockerfile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Dockerfile b/Dockerfile index bb2d3bc..3718353 100644 --- a/Dockerfile +++ b/Dockerfile @@ -4,8 +4,8 @@ WORKDIR /srv/app RUN composer install FROM php:8.1.7-fpm-alpine3.16 -MAINTAINER "i.perepelica@devspark.ru" COPY --from=builder /srv/app /srv/app WORKDIR /srv/app -RUN cp .env.example .env -CMD php artisan serve --host=0.0.0.0 +RUN chmod -R 777 storage +RUN chmod -R 775 bootstrap/cache +CMD ["php-fpm"] From 497edb403d5c90ebac60c1ef35a8feff556b78fd Mon Sep 17 00:00:00 2001 From: Ivan Perepelitsa <75025449+ivanp-bmstu@users.noreply.github.com> Date: Thu, 1 Sep 2022 15:22:08 +0300 Subject: [PATCH 9/9] [*] UPD: add APP_KEY --- .env.example | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.env.example b/.env.example index 9bb1bd7..a50038e 100644 --- a/.env.example +++ b/.env.example @@ -1,6 +1,6 @@ APP_NAME=Laravel APP_ENV=local -APP_KEY= +APP_KEY=base64:FLuNOkD9dWz/DuQ2WCjpOkqAhBbxhS0vVakSddSLOKQ= APP_DEBUG=true APP_URL=http://localhost