From 4b8b64d893ce837a1845fa9aaefa552536ff96fb Mon Sep 17 00:00:00 2001 From: Kacper Donat Date: Sat, 13 Mar 2021 20:42:15 +0100 Subject: [PATCH] Add php support for legacy services --- services/legacy/config/Dockerfile.j2 | 5 +++++ services/legacy/stack.yml | 6 ++++++ services/legacy/tasks/_docker.yml | 21 +++++++++++++++++++++ services/legacy/tasks/config.yml | 8 +++++++- services/legacy/vars/main.yml | 8 ++++++++ tasks/deploy.yml | 1 + 6 files changed, 48 insertions(+), 1 deletion(-) create mode 100644 services/legacy/config/Dockerfile.j2 create mode 100644 services/legacy/tasks/_docker.yml diff --git a/services/legacy/config/Dockerfile.j2 b/services/legacy/config/Dockerfile.j2 new file mode 100644 index 0000000..eb81c68 --- /dev/null +++ b/services/legacy/config/Dockerfile.j2 @@ -0,0 +1,5 @@ +FROM php:{{ version }}-fpm-alpine + +COPY --from=mlocati/php-extension-installer /usr/bin/install-php-extensions /usr/local/bin/ + +RUN install-php-extensions {{ php_extensions|join(" ") }} diff --git a/services/legacy/stack.yml b/services/legacy/stack.yml index e20c71e..81f3b3a 100644 --- a/services/legacy/stack.yml +++ b/services/legacy/stack.yml @@ -13,3 +13,9 @@ services: labels: - traefik.enable=true - traefik.http.services.{{ service }}.loadbalancer.server.port=80 +{% for version in php_versions %} + php-{{ version|replace('.', '') }}: + image: kadet/php:{{ version }} + volumes: + - "{{ www_root }}:/var/www" +{% endfor %} diff --git a/services/legacy/tasks/_docker.yml b/services/legacy/tasks/_docker.yml new file mode 100644 index 0000000..3584d0a --- /dev/null +++ b/services/legacy/tasks/_docker.yml @@ -0,0 +1,21 @@ +--- +- name: "Create directory for {{ version }}" + file: + path: "{{ remote_service_path }}/.docker/{{ version }}" + state: directory + +- name: "Create Dockerfile for {{ version }}" + template: + src: "{{ service_path }}/config/Dockerfile.j2" + dest: "{{ remote_service_path }}/.docker/{{ version }}/Dockerfile" + register: dockerfile + +- name: "Build and tag docker image for php {{ version }}" + community.docker.docker_image: + name: kadet/php + tag: "{{ version }}" + build: + path: "{{ remote_service_path }}/.docker/{{ version }}" + source: build + force_source: "{{ dockerfile.changed or update_images|default(false) }}" + force_tag: "{{ dockerfile.changed or update_images|default(false) }}" diff --git a/services/legacy/tasks/config.yml b/services/legacy/tasks/config.yml index d3554f5..f543cce 100644 --- a/services/legacy/tasks/config.yml +++ b/services/legacy/tasks/config.yml @@ -5,7 +5,7 @@ state: directory owner: "{{ ansible_user }}" tags: - - config + - configa - name: 'Copy sites configuration to remote server' template: @@ -16,3 +16,9 @@ loop_var: file tags: - config + +- name: "Create docker images for php-fpm" + include_tasks: "{{ service_path }}/tasks/_docker.yml" + loop: "{{ php_versions }}" + loop_control: + loop_var: version diff --git a/services/legacy/vars/main.yml b/services/legacy/vars/main.yml index 7ce217b..5358639 100644 --- a/services/legacy/vars/main.yml +++ b/services/legacy/vars/main.yml @@ -3,3 +3,11 @@ www_root: /var/www www_data_users: [] php_versions: ['7.1', '7.3'] +php_extensions: + - bcmath + - gd + - opcache + - pdo_mysql + - redis + - sockets + - zip diff --git a/tasks/deploy.yml b/tasks/deploy.yml index a35cae8..cd9bf76 100644 --- a/tasks/deploy.yml +++ b/tasks/deploy.yml @@ -30,6 +30,7 @@ with_fileglob: "{{ services_root }}/{{ service }}/tasks/*" loop_control: loop_var: service_task_file + when: service_task_file|basename is not regex('^_') tags: - always