From a63429c5c14991f089057957a150116fdbc51698 Mon Sep 17 00:00:00 2001 From: Dominik Hebeler Date: Thu, 20 Feb 2020 11:23:06 +0100 Subject: [PATCH 1/9] removed Dockerfile to test Heroku --- .dockerignore | 3 ++ Dockerfile | 70 --------------------------------- Dockerfile.old | 11 ++++++ chart/templates/deployment.yaml | 17 -------- 4 files changed, 14 insertions(+), 87 deletions(-) delete mode 100644 Dockerfile create mode 100644 Dockerfile.old diff --git a/.dockerignore b/.dockerignore index 2086dcb4..cc2fadc5 100644 --- a/.dockerignore +++ b/.dockerignore @@ -2,3 +2,6 @@ README.md CHANGELOG.md docker-compose.yml Dockerfile +vendor/* +node_modules/* +storage/logs/* \ No newline at end of file diff --git a/Dockerfile b/Dockerfile deleted file mode 100644 index 23f7fcf7..00000000 --- a/Dockerfile +++ /dev/null @@ -1,70 +0,0 @@ -FROM alpine:latest - -RUN apk add --update \ - nginx \ - tzdata \ - ca-certificates \ - dcron \ - zip \ - redis \ - php7 \ - php7-fpm \ - php7-common \ - php7-curl \ - php7-mbstring \ - php7-sqlite3 \ - php7-pdo_mysql \ - php7-pdo_sqlite \ - php7-dom \ - php7-simplexml \ - php7-tokenizer \ - php7-zip \ - php7-redis \ - php7-gd \ - php7-json \ - php7-pcntl \ - php7-opcache \ - php7-fileinfo \ - && rm -rf /var/cache/apk/* - -WORKDIR /html - -RUN sed -i 's/user = nobody/user = nginx/g' /etc/php7/php-fpm.d/www.conf && \ - sed -i 's/group = nobody/group = nginx/g' /etc/php7/php-fpm.d/www.conf && \ - sed -i 's/pm.max_children = 5/pm.max_children = 100/g' /etc/php7/php-fpm.d/www.conf && \ - sed -i 's/pm.start_servers = 2/pm.start_servers = 5/g' /etc/php7/php-fpm.d/www.conf && \ - sed -i 's/pm.min_spare_servers = 1/pm.min_spare_servers = 5/g' /etc/php7/php-fpm.d/www.conf && \ - sed -i 's/pm.max_spare_servers = 3/pm.max_spare_servers = 25/g' /etc/php7/php-fpm.d/www.conf && \ - sed -i 's/user = www-data/user = nginx/g' /etc/php7/php-fpm.d/www.conf && \ - sed -i 's/group = www-data/group = nginx/g' /etc/php7/php-fpm.d/www.conf && \ - sed -i 's/;cgi.fix_pathinfo=1/cgi.fix_pathinfo=0/g' /etc/php7/php.ini && \ - sed -i 's/expose_php = On/expose_php = Off/g' /etc/php7/php.ini && \ - # Opcache configuration - sed -i 's/;opcache.enable=1/opcache.enable=1/g' /etc/php7/php.ini && \ - sed -i 's/;opcache.memory_consumption=128/opcache.memory_consumption=128/g' /etc/php7/php.ini && \ - sed -i 's/;opcache.interned_strings_buffer=8/opcache.interned_strings_buffer=8/g' /etc/php7/php.ini && \ - sed -i 's/;opcache.max_accelerated_files=10000/opcache.max_accelerated_files=10000/g' /etc/php7/php.ini && \ - sed -i 's/;opcache.max_wasted_percentage=5/opcache.max_wasted_percentage=5/g' /etc/php7/php.ini && \ - sed -i 's/;opcache.validate_timestamps=1/opcache.validate_timestamps=1/g' /etc/php7/php.ini && \ - sed -i 's/;opcache.revalidate_freq=2/opcache.revalidate_freq=300/g' /etc/php7/php.ini && \ - echo "daemonize yes" >> /etc/redis.conf && \ - ln -s /dev/null /var/log/nginx/access.log && \ - ln -s /dev/stdout /var/log/nginx/error.log && \ - cp /usr/share/zoneinfo/Europe/Berlin /etc/localtime && \ - echo "Europe/Berlin" > /etc/timezone && \ - (crontab -l ; echo "* * * * * php /html/artisan schedule:run >> /dev/null 2>&1") | crontab - - -COPY config/nginx.conf /etc/nginx/nginx.conf -COPY config/nginx-default.conf /etc/nginx/conf.d/default.conf -COPY --chown=root:nginx . /html - -WORKDIR /html -EXPOSE 80 - -CMD chown -R root:nginx storage/logs/metager bootstrap/cache && \ - chmod -R g+w storage/logs/metager bootstrap/cache && \ - crond -L /dev/stdout && \ - nginx && \ - php-fpm7 -D && \ - redis-server /etc/redis.conf && \ - su -s /bin/sh -c 'php artisan requests:fetcher' nginx diff --git a/Dockerfile.old b/Dockerfile.old new file mode 100644 index 00000000..37bf7086 --- /dev/null +++ b/Dockerfile.old @@ -0,0 +1,11 @@ +FROM php:7.3-fpm + +RUN apt update && \ + apt install -y \ + libpng-dev && \ + printf "\n" | pecl install -o -f redis && \ + rm -rf /tmp/pear && \ + docker-php-ext-configure gd && \ + docker-php-ext-install gd pcntl opcache && \ + docker-php-ext-enable redis opcache + diff --git a/chart/templates/deployment.yaml b/chart/templates/deployment.yaml index e619fd5a..4c04ffc4 100644 --- a/chart/templates/deployment.yaml +++ b/chart/templates/deployment.yaml @@ -48,23 +48,6 @@ spec: name: {{ .Values.application.secretName }} {{- end }} env: -{{- if .Values.postgresql.managed }} - - name: POSTGRES_USER - valueFrom: - secretKeyRef: - name: app-postgres - key: username - - name: POSTGRES_PASSWORD - valueFrom: - secretKeyRef: - name: app-postgres - key: password - - name: POSTGRES_HOST - valueFrom: - secretKeyRef: - name: app-postgres - key: privateIP -{{- end }} - name: DATABASE_URL value: {{ .Values.application.database_url | quote }} - name: GITLAB_ENVIRONMENT_NAME -- GitLab From 5364a9bd6db8d1e8b07bbcbca7a8c7fa57199790 Mon Sep 17 00:00:00 2001 From: Dominik Hebeler Date: Thu, 20 Feb 2020 12:49:31 +0100 Subject: [PATCH 2/9] Modified local deployment --- .env.example | 3 +- Dockerfile | 71 +++++++++++++++++++++++++++++++++++++++ Dockerfile.dev | 22 ++++++++---- Dockerfile.old | 11 ------ config/nginx-default.conf | 2 +- config/nginx.conf | 1 + docker-compose.yml | 25 +++++++++++++- 7 files changed, 115 insertions(+), 20 deletions(-) create mode 100644 Dockerfile delete mode 100644 Dockerfile.old diff --git a/.env.example b/.env.example index 155d08ba..6c5cfe95 100644 --- a/.env.example +++ b/.env.example @@ -21,7 +21,8 @@ CACHE_DRIVER=redis SESSION_DRIVER=file QUEUE_CONNECTION=sync -REDIS_HOST=127.0.0.1 +REDIS_CACHE_HOST=redis +REDIS_HOST=redis REDIS_PASSWORD=null REDIS_PORT=6379 diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 00000000..04c5500e --- /dev/null +++ b/Dockerfile @@ -0,0 +1,71 @@ +FROM alpine:3.11.3 + +RUN apk add --update \ + nginx \ + tzdata \ + ca-certificates \ + dcron \ + zip \ + redis \ + php7 \ + php7-fpm \ + php7-common \ + php7-curl \ + php7-mbstring \ + php7-sqlite3 \ + php7-pdo_mysql \ + php7-pdo_sqlite \ + php7-dom \ + php7-simplexml \ + php7-tokenizer \ + php7-zip \ + php7-redis \ + php7-gd \ + php7-json \ + php7-pcntl \ + php7-opcache \ + php7-fileinfo \ + && rm -rf /var/cache/apk/* + +WORKDIR /html + +RUN sed -i 's/;error_log = log\/php7\/error.log/error_log = \/dev\/stdout/g' /etc/php7/php-fpm.conf && \ + sed -i 's/;daemonize = yes/daemonize = no/g' /etc/php7/php-fpm.conf && \ + sed -i 's/listen = 127.0.0.1:9000/listen = 9000/g' /etc/php7/php-fpm.d/www.conf && \ + sed -i 's/;catch_workers_output = yes/catch_workers_output = yes/g' /etc/php7/php-fpm.d/www.conf && \ + sed -i 's/user = nobody/user = nginx/g' /etc/php7/php-fpm.d/www.conf && \ + sed -i 's/group = nobody/group = nginx/g' /etc/php7/php-fpm.d/www.conf && \ + sed -i 's/pm.max_children = 5/pm.max_children = 100/g' /etc/php7/php-fpm.d/www.conf && \ + sed -i 's/pm.start_servers = 2/pm.start_servers = 5/g' /etc/php7/php-fpm.d/www.conf && \ + sed -i 's/pm.min_spare_servers = 1/pm.min_spare_servers = 5/g' /etc/php7/php-fpm.d/www.conf && \ + sed -i 's/pm.max_spare_servers = 3/pm.max_spare_servers = 25/g' /etc/php7/php-fpm.d/www.conf && \ + sed -i 's/user = www-data/user = nginx/g' /etc/php7/php-fpm.d/www.conf && \ + sed -i 's/group = www-data/group = nginx/g' /etc/php7/php-fpm.d/www.conf && \ + sed -i 's/;cgi.fix_pathinfo=1/cgi.fix_pathinfo=0/g' /etc/php7/php.ini && \ + sed -i 's/expose_php = On/expose_php = Off/g' /etc/php7/php.ini && \ + # Opcache configuration + sed -i 's/;opcache.enable=1/opcache.enable=1/g' /etc/php7/php.ini && \ + sed -i 's/;opcache.memory_consumption=128/opcache.memory_consumption=128/g' /etc/php7/php.ini && \ + sed -i 's/;opcache.interned_strings_buffer=8/opcache.interned_strings_buffer=8/g' /etc/php7/php.ini && \ + sed -i 's/;opcache.max_accelerated_files=10000/opcache.max_accelerated_files=10000/g' /etc/php7/php.ini && \ + sed -i 's/;opcache.max_wasted_percentage=5/opcache.max_wasted_percentage=5/g' /etc/php7/php.ini && \ + sed -i 's/;opcache.validate_timestamps=1/opcache.validate_timestamps=1/g' /etc/php7/php.ini && \ + sed -i 's/;opcache.revalidate_freq=2/opcache.revalidate_freq=300/g' /etc/php7/php.ini && \ + echo "daemonize yes" >> /etc/redis.conf && \ + ln -s /dev/null /var/log/nginx/access.log && \ + ln -s /dev/stdout /var/log/nginx/error.log && \ + cp /usr/share/zoneinfo/Europe/Berlin /etc/localtime && \ + echo "Europe/Berlin" > /etc/timezone && \ + (crontab -l ; echo "* * * * * php /html/artisan schedule:run >> /dev/null 2>&1") | crontab - + +COPY config/nginx.conf /etc/nginx/nginx.conf +COPY config/nginx-default.conf /etc/nginx/conf.d/default.conf +COPY --chown=root:nginx . /html + +WORKDIR /html +EXPOSE 80 + +CMD chown -R root:nginx storage/logs/metager bootstrap/cache && \ + chmod -R g+w storage/logs/metager bootstrap/cache && \ + crond -L /dev/stdout && \ + nginx diff --git a/Dockerfile.dev b/Dockerfile.dev index d195e6bf..d77c7769 100644 --- a/Dockerfile.dev +++ b/Dockerfile.dev @@ -1,4 +1,4 @@ -FROM alpine:latest +FROM alpine:3.11.3 RUN apk add --update \ nginx \ @@ -23,12 +23,17 @@ RUN apk add --update \ php7-gd \ php7-json \ php7-pcntl \ + php7-opcache \ php7-fileinfo \ && rm -rf /var/cache/apk/* WORKDIR /html -RUN sed -i 's/user = nobody/user = nginx/g' /etc/php7/php-fpm.d/www.conf && \ +RUN sed -i 's/;error_log = log\/php7\/error.log/error_log = \/dev\/stdout/g' /etc/php7/php-fpm.conf && \ + sed -i 's/;daemonize = yes/daemonize = no/g' /etc/php7/php-fpm.conf && \ + sed -i 's/listen = 127.0.0.1:9000/listen = 9000/g' /etc/php7/php-fpm.d/www.conf && \ + sed -i 's/;catch_workers_output = yes/catch_workers_output = yes/g' /etc/php7/php-fpm.d/www.conf && \ + sed -i 's/user = nobody/user = nginx/g' /etc/php7/php-fpm.d/www.conf && \ sed -i 's/group = nobody/group = nginx/g' /etc/php7/php-fpm.d/www.conf && \ sed -i 's/pm.max_children = 5/pm.max_children = 100/g' /etc/php7/php-fpm.d/www.conf && \ sed -i 's/pm.start_servers = 2/pm.start_servers = 5/g' /etc/php7/php-fpm.d/www.conf && \ @@ -38,6 +43,14 @@ RUN sed -i 's/user = nobody/user = nginx/g' /etc/php7/php-fpm.d/www.conf && \ sed -i 's/group = www-data/group = nginx/g' /etc/php7/php-fpm.d/www.conf && \ sed -i 's/;cgi.fix_pathinfo=1/cgi.fix_pathinfo=0/g' /etc/php7/php.ini && \ sed -i 's/expose_php = On/expose_php = Off/g' /etc/php7/php.ini && \ + # Opcache configuration + sed -i 's/;opcache.enable=1/opcache.enable=1/g' /etc/php7/php.ini && \ + sed -i 's/;opcache.memory_consumption=128/opcache.memory_consumption=128/g' /etc/php7/php.ini && \ + sed -i 's/;opcache.interned_strings_buffer=8/opcache.interned_strings_buffer=8/g' /etc/php7/php.ini && \ + sed -i 's/;opcache.max_accelerated_files=10000/opcache.max_accelerated_files=10000/g' /etc/php7/php.ini && \ + sed -i 's/;opcache.max_wasted_percentage=5/opcache.max_wasted_percentage=5/g' /etc/php7/php.ini && \ + sed -i 's/;opcache.validate_timestamps=1/opcache.validate_timestamps=1/g' /etc/php7/php.ini && \ + sed -i 's/;opcache.revalidate_freq=2/opcache.revalidate_freq=300/g' /etc/php7/php.ini && \ echo "daemonize yes" >> /etc/redis.conf && \ ln -s /dev/null /var/log/nginx/access.log && \ ln -s /dev/stdout /var/log/nginx/error.log && \ @@ -51,7 +64,4 @@ EXPOSE 80 CMD chown -R root:nginx storage/logs/metager bootstrap/cache && \ chmod -R g+w storage/logs/metager bootstrap/cache && \ crond -L /dev/stdout && \ - nginx && \ - php-fpm7 -D && \ - redis-server /etc/redis.conf && \ - su -s /bin/sh -c 'php artisan requests:fetcher' nginx + nginx diff --git a/Dockerfile.old b/Dockerfile.old deleted file mode 100644 index 37bf7086..00000000 --- a/Dockerfile.old +++ /dev/null @@ -1,11 +0,0 @@ -FROM php:7.3-fpm - -RUN apt update && \ - apt install -y \ - libpng-dev && \ - printf "\n" | pecl install -o -f redis && \ - rm -rf /tmp/pear && \ - docker-php-ext-configure gd && \ - docker-php-ext-install gd pcntl opcache && \ - docker-php-ext-enable redis opcache - diff --git a/config/nginx-default.conf b/config/nginx-default.conf index c61d290a..e418b8d6 100644 --- a/config/nginx-default.conf +++ b/config/nginx-default.conf @@ -14,7 +14,7 @@ server { location ~ \.php$ { try_files $uri /index.php =404; fastcgi_split_path_info ^(.+\.php)(/.+)$; - fastcgi_pass 127.0.0.1:9000; + fastcgi_pass phpfpm:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; diff --git a/config/nginx.conf b/config/nginx.conf index 37937533..96b512b5 100644 --- a/config/nginx.conf +++ b/config/nginx.conf @@ -5,6 +5,7 @@ worker_processes 100; error_log /var/log/nginx/error.log warn; pid /var/run/nginx.pid; +daemon off; events { worker_connections 1024; diff --git a/docker-compose.yml b/docker-compose.yml index f2e6c8b4..1b531769 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -28,16 +28,30 @@ services: - MYSQL_USER=metager - MYSQL_PASSWORD=metager - MYSQL_DATABASE=metager - web: + redis: + restart: on-failure + image: redis:6.0-rc1-alpine + phpfpm: depends_on: - "mgdb" - "dependencies" - "phpdeps" - "assets" + - "redis" restart: on-failure build: context: . dockerfile: Dockerfile.dev + image: metager:latest + command: php-fpm7 + working_dir: /html + volumes: + - .:/html + nginx: + depends_on: + - "phpfpm" + restart: on-failure + image: metager:latest working_dir: /html volumes: - .:/html @@ -45,3 +59,12 @@ services: - ./config/nginx-default.conf:/etc/nginx/conf.d/default.conf ports: - "8080:80" + worker: + depends_on: + - "phpfpm" + restart: on-failure + image: metager:latest + working_dir: /html + volumes: + - .:/html + command: "su -s /bin/sh -c 'php artisan requests:fetcher' nginx" -- GitLab From cf3797fca2332f95efd1ce7942479cb10184a9b1 Mon Sep 17 00:00:00 2001 From: Dominik Hebeler Date: Thu, 20 Feb 2020 13:13:12 +0100 Subject: [PATCH 3/9] Added Container --- Dockerfile | 2 +- Dockerfile.dev | 2 +- chart/templates/deployment.yaml | 42 ++++++++++++++++++++++++++++----- docker-compose.yml | 2 +- 4 files changed, 39 insertions(+), 9 deletions(-) diff --git a/Dockerfile b/Dockerfile index 04c5500e..ff6fefbe 100644 --- a/Dockerfile +++ b/Dockerfile @@ -68,4 +68,4 @@ EXPOSE 80 CMD chown -R root:nginx storage/logs/metager bootstrap/cache && \ chmod -R g+w storage/logs/metager bootstrap/cache && \ crond -L /dev/stdout && \ - nginx + php-fpm7 diff --git a/Dockerfile.dev b/Dockerfile.dev index d77c7769..18748bf8 100644 --- a/Dockerfile.dev +++ b/Dockerfile.dev @@ -64,4 +64,4 @@ EXPOSE 80 CMD chown -R root:nginx storage/logs/metager bootstrap/cache && \ chmod -R g+w storage/logs/metager bootstrap/cache && \ crond -L /dev/stdout && \ - nginx + php-fpm7 diff --git a/chart/templates/deployment.yaml b/chart/templates/deployment.yaml index 4c04ffc4..539ea2ae 100644 --- a/chart/templates/deployment.yaml +++ b/chart/templates/deployment.yaml @@ -39,6 +39,42 @@ spec: persistentVolumeClaim: claimName: mglogs containers: + # Main PHP-FPM Container + - name: {{ .Chart.Name }}-phpfpm + image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}" + imagePullPolicy: {{ .Values.image.pullPolicy }} + {{- if .Values.application.secretName }} + envFrom: + - secretRef: + name: {{ .Values.application.secretName }} + {{- end }} + env: + - name: DATABASE_URL + value: {{ .Values.application.database_url | quote }} + - name: GITLAB_ENVIRONMENT_NAME + value: {{ .Values.gitlab.envName }} + - name: GITLAB_ENVIRONMENT_URL + value: {{ .Values.gitlab.envURL }} + ports: + - name: "{{ .Values.service.name }}-phpfpm" + containerPort: 9000 + livenessProbe: + tcpSocket: + port: "{{ .Values.service.name }}-phpfpm" + initialDelaySeconds: {{ .Values.livenessProbe.initialDelaySeconds }} + timeoutSeconds: {{ .Values.livenessProbe.timeoutSeconds }} + readinessProbe: + tcpSocket: + port: "{{ .Values.service.name }}-phpfpm" + initialDelaySeconds: {{ .Values.readinessProbe.initialDelaySeconds }} + timeoutSeconds: {{ .Values.readinessProbe.timeoutSeconds }} + volumeMounts: + - name: mglogs-persistent-storage + mountPath: /html/storage/logs/metager + readOnly: false + resources: +{{ toYaml .Values.resources | indent 12 }} + # Nginx Container - name: {{ .Chart.Name }} image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}" imagePullPolicy: {{ .Values.image.pullPolicy }} @@ -81,10 +117,4 @@ spec: {{- end }} initialDelaySeconds: {{ .Values.readinessProbe.initialDelaySeconds }} timeoutSeconds: {{ .Values.readinessProbe.timeoutSeconds }} - volumeMounts: - - name: mglogs-persistent-storage - mountPath: /html/storage/logs/metager - readOnly: false - resources: -{{ toYaml .Values.resources | indent 12 }} {{- end -}} diff --git a/docker-compose.yml b/docker-compose.yml index 1b531769..6a63508b 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -43,7 +43,6 @@ services: context: . dockerfile: Dockerfile.dev image: metager:latest - command: php-fpm7 working_dir: /html volumes: - .:/html @@ -53,6 +52,7 @@ services: restart: on-failure image: metager:latest working_dir: /html + command: nginx volumes: - .:/html - ./config/nginx.conf:/etc/nginx/nginx.conf -- GitLab From 2287a0b0932e3c2a2aeb09bf393c0c6aa252f771 Mon Sep 17 00:00:00 2001 From: Dominik Hebeler Date: Thu, 20 Feb 2020 13:32:13 +0100 Subject: [PATCH 4/9] changed command for nginx container --- chart/templates/deployment.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/chart/templates/deployment.yaml b/chart/templates/deployment.yaml index 539ea2ae..8db5b22f 100644 --- a/chart/templates/deployment.yaml +++ b/chart/templates/deployment.yaml @@ -77,6 +77,7 @@ spec: # Nginx Container - name: {{ .Chart.Name }} image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}" + command: ["nginx"] imagePullPolicy: {{ .Values.image.pullPolicy }} {{- if .Values.application.secretName }} envFrom: -- GitLab From 4f2500d7127a0be28debcabcffaf55e576203b6b Mon Sep 17 00:00:00 2001 From: Dominik Hebeler Date: Thu, 20 Feb 2020 13:48:29 +0100 Subject: [PATCH 5/9] in our cluster php-fpm is available under localhost --- Dockerfile | 1 + 1 file changed, 1 insertion(+) diff --git a/Dockerfile b/Dockerfile index ff6fefbe..09d99369 100644 --- a/Dockerfile +++ b/Dockerfile @@ -60,6 +60,7 @@ RUN sed -i 's/;error_log = log\/php7\/error.log/error_log = \/dev\/stdout/g' /et COPY config/nginx.conf /etc/nginx/nginx.conf COPY config/nginx-default.conf /etc/nginx/conf.d/default.conf +RUN sed -i 's/fastcgi_pass phpfpm:9000;/fastcgi_pass localhost:9000;/g' /etc/nginx/conf.d/default.conf COPY --chown=root:nginx . /html WORKDIR /html -- GitLab From a10e748ccd878d285cd92c03f0a817d9b349fdda Mon Sep 17 00:00:00 2001 From: Dominik Hebeler Date: Thu, 20 Feb 2020 14:10:25 +0100 Subject: [PATCH 6/9] readded vendor packages --- .dockerignore | 5 +---- Dockerfile.dev => DockerfileDev | 0 DockerfileDev.ignore | 5 +++++ 3 files changed, 6 insertions(+), 4 deletions(-) rename Dockerfile.dev => DockerfileDev (100%) create mode 100644 DockerfileDev.ignore diff --git a/.dockerignore b/.dockerignore index cc2fadc5..4c2d65fd 100644 --- a/.dockerignore +++ b/.dockerignore @@ -1,7 +1,4 @@ README.md CHANGELOG.md docker-compose.yml -Dockerfile -vendor/* -node_modules/* -storage/logs/* \ No newline at end of file +Dockerfile \ No newline at end of file diff --git a/Dockerfile.dev b/DockerfileDev similarity index 100% rename from Dockerfile.dev rename to DockerfileDev diff --git a/DockerfileDev.ignore b/DockerfileDev.ignore new file mode 100644 index 00000000..d6b954ef --- /dev/null +++ b/DockerfileDev.ignore @@ -0,0 +1,5 @@ +README.md +CHANGELOG.md +vendor/* +node_modules/* +storage/logs/* \ No newline at end of file -- GitLab From eb379abf853f418040d982bd28792d3a6ceb90f3 Mon Sep 17 00:00:00 2001 From: Dominik Hebeler Date: Thu, 20 Feb 2020 14:31:27 +0100 Subject: [PATCH 7/9] added redis and fetcher container --- chart/templates/deployment.yaml | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/chart/templates/deployment.yaml b/chart/templates/deployment.yaml index 8db5b22f..f65ea5f4 100644 --- a/chart/templates/deployment.yaml +++ b/chart/templates/deployment.yaml @@ -75,7 +75,7 @@ spec: resources: {{ toYaml .Values.resources | indent 12 }} # Nginx Container - - name: {{ .Chart.Name }} + - name: {{ .Chart.Name }}-nginx image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}" command: ["nginx"] imagePullPolicy: {{ .Values.image.pullPolicy }} @@ -118,4 +118,27 @@ spec: {{- end }} initialDelaySeconds: {{ .Values.readinessProbe.initialDelaySeconds }} timeoutSeconds: {{ .Values.readinessProbe.timeoutSeconds }} + # Redis Container + - name: {{ .Chart.Name }}-redis + image: "redis:6.0-rc1-alpine" + imagePullPolicy: {{ .Values.image.pullPolicy }} + ports: + - name: "{{ .Values.service.name }}-redis" + containerPort: 6379 + livenessProbe: + tcpSocket: + port: "{{ .Values.service.name }}-redis" + initialDelaySeconds: {{ .Values.livenessProbe.initialDelaySeconds }} + timeoutSeconds: {{ .Values.livenessProbe.timeoutSeconds }} + readinessProbe: + tcpSocket: + port: "{{ .Values.service.name }}-redis" + initialDelaySeconds: {{ .Values.readinessProbe.initialDelaySeconds }} + timeoutSeconds: {{ .Values.readinessProbe.timeoutSeconds }} + # Fetcher Container + - name: {{ .Chart.Name }}-fetcher + image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}" + command: ["su"] + args: ["-s", "/bin/sh", "-c", "php artisan requests:fetcher", "nginx"] + imagePullPolicy: {{ .Values.image.pullPolicy }} {{- end -}} -- GitLab From 32129f5164cba605bc4902a90ddadc1018620337 Mon Sep 17 00:00:00 2001 From: Dominik Hebeler Date: Thu, 20 Feb 2020 14:38:15 +0100 Subject: [PATCH 8/9] added liveness and readiness for fetcher --- app/Console/Commands/RequestFetcher.php | 10 ++++++++-- chart/templates/deployment.yaml | 14 ++++++++++++++ 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/app/Console/Commands/RequestFetcher.php b/app/Console/Commands/RequestFetcher.php index f932b92b..f6305c39 100644 --- a/app/Console/Commands/RequestFetcher.php +++ b/app/Console/Commands/RequestFetcher.php @@ -50,10 +50,17 @@ class RequestFetcher extends Command */ public function handle() { + $pidFile = "/tmp/fetcher"; pcntl_signal(SIGINT, [$this, "sig_handler"]); pcntl_signal(SIGTERM, [$this, "sig_handler"]); pcntl_signal(SIGHUP, [$this, "sig_handler"]); + touch($pidFile); + + if (!file_exists($pidFile)) { + return; + } + try { $blocking = false; $redis = Redis::connection("cache"); @@ -108,9 +115,8 @@ class RequestFetcher extends Command usleep(50 * 1000); } } - } catch (\Exception $e) { - Log::error($e->getMessage()); } finally { + unlink($pidFile); curl_multi_close($this->multicurl); } } diff --git a/chart/templates/deployment.yaml b/chart/templates/deployment.yaml index f65ea5f4..977aee9c 100644 --- a/chart/templates/deployment.yaml +++ b/chart/templates/deployment.yaml @@ -141,4 +141,18 @@ spec: command: ["su"] args: ["-s", "/bin/sh", "-c", "php artisan requests:fetcher", "nginx"] imagePullPolicy: {{ .Values.image.pullPolicy }} + livenessProbe: + exec: + command: + - cat + - /tmp/fetcher + initialDelaySeconds: {{ .Values.livenessProbe.initialDelaySeconds }} + timeoutSeconds: {{ .Values.livenessProbe.timeoutSeconds }} + readinessProbe: + exec: + command: + - cat + - /tmp/fetcher + initialDelaySeconds: {{ .Values.readinessProbe.initialDelaySeconds }} + timeoutSeconds: {{ .Values.readinessProbe.timeoutSeconds }} {{- end -}} -- GitLab From fb58ad5623cd7118c27ee5317ba818eacdc96567 Mon Sep 17 00:00:00 2001 From: Dominik Hebeler Date: Thu, 20 Feb 2020 14:44:32 +0100 Subject: [PATCH 9/9] switched log to stderr --- .env.example | 1 + 1 file changed, 1 insertion(+) diff --git a/.env.example b/.env.example index 6c5cfe95..99ebfcd8 100644 --- a/.env.example +++ b/.env.example @@ -1,6 +1,7 @@ APP_ENV=local APP_DEBUG=true APP_LOG_LEVEL=debug +LOG_CHANNEL=stderr APP_KEY= APP_URL=http://localhost -- GitLab