container: make dockerfile variable officially supported and more modular
This commit is contained in:
@@ -3,6 +3,7 @@
|
|||||||
docker_host_user: false
|
docker_host_user: false
|
||||||
docker_volume_type: named
|
docker_volume_type: named
|
||||||
docker_mariadb_config: {}
|
docker_mariadb_config: {}
|
||||||
|
dockerfile: []
|
||||||
|
|
||||||
docker_phpmyadmin_basicauth: true
|
docker_phpmyadmin_basicauth: true
|
||||||
docker_phpmyadmin_basicauth_users: {}
|
docker_phpmyadmin_basicauth_users: {}
|
||||||
|
|||||||
@@ -17,6 +17,12 @@ argument_specs:
|
|||||||
description: "Docker image to use for the container. If dockerfile is defined, it will be used as base for locally built image (example: gitea/gitea:latest)"
|
description: "Docker image to use for the container. If dockerfile is defined, it will be used as base for locally built image (example: gitea/gitea:latest)"
|
||||||
type: str
|
type: str
|
||||||
required: true
|
required: true
|
||||||
|
dockerfile:
|
||||||
|
description: "A list of dockerfile instructions to add to the base image"
|
||||||
|
type: list
|
||||||
|
elements: str
|
||||||
|
required: false
|
||||||
|
default: []
|
||||||
docker_host_user:
|
docker_host_user:
|
||||||
description: "If true, creates a user on the host for this service. The container will run as this user's uid/gid. Bind mount volumes will be owned by this user."
|
description: "If true, creates a user on the host for this service. The container will run as this user's uid/gid. Bind mount volumes will be owned by this user."
|
||||||
type: bool
|
type: bool
|
||||||
|
|||||||
@@ -39,7 +39,7 @@
|
|||||||
set_fact:
|
set_fact:
|
||||||
template_mounts_needed: "{{ docker_mounts | selectattr('template', 'defined') | list | length > 0 }}"
|
template_mounts_needed: "{{ docker_mounts | selectattr('template', 'defined') | list | length > 0 }}"
|
||||||
volumes_needed: "{{ docker_mounts | selectattr('name', 'defined') | list | length > 0 or docker_database != 'none' }}"
|
volumes_needed: "{{ docker_mounts | selectattr('name', 'defined') | list | length > 0 or docker_database != 'none' }}"
|
||||||
dockerfile_needed: "{{ dockerfile is defined and dockerfile | length > 0 }}"
|
dockerfile_needed: "{{ dockerfile | length > 0 }}"
|
||||||
db_config_mounts_needed: "{{ docker_mariadb_config | length > 0 }}"
|
db_config_mounts_needed: "{{ docker_mariadb_config | length > 0 }}"
|
||||||
- name: Set more assistive variables
|
- name: Set more assistive variables
|
||||||
set_fact:
|
set_fact:
|
||||||
|
|||||||
@@ -1,9 +1,6 @@
|
|||||||
# {{ ansible_managed }}
|
# {{ ansible_managed }}
|
||||||
|
|
||||||
FROM {{ docker_image }}
|
FROM {{ docker_image }}
|
||||||
{% if dockerfile.run is iterable %}
|
{% for item in dockerfile %}
|
||||||
{% for cmd in dockerfile.run %}
|
{{ item }}
|
||||||
RUN {{ cmd }}
|
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
- name: Reset dockerfile variable
|
- name: Reset dockerfile variable
|
||||||
set_fact:
|
set_fact:
|
||||||
dockerfile: {}
|
dockerfile: []
|
||||||
|
|
||||||
- name: Set docker service full name (required because docker_env uses it)
|
- name: Set docker service full name (required because docker_env uses it)
|
||||||
set_fact:
|
set_fact:
|
||||||
@@ -11,14 +11,16 @@
|
|||||||
|
|
||||||
- name: Add memcached php extension to container
|
- name: Add memcached php extension to container
|
||||||
set_fact:
|
set_fact:
|
||||||
dockerfile: "{{ dockerfile | combine({'run': \
|
dockerfile: >
|
||||||
['apt-get update && apt-get install -y libmemcached-dev libssl-dev zlib1g-dev && \
|
"{{ dockerfile +
|
||||||
pecl install memcached-3.2.0 && docker-php-ext-enable memcached']}, list_merge='append') }}"
|
['RUN apt-get update && \
|
||||||
|
apt-get install -y libmemcached-dev libssl-dev zlib1g-dev && \
|
||||||
|
pecl install memcached-3.2.0 && docker-php-ext-enable memcached'] }}"
|
||||||
when: "'memcached' in docker_additional_services"
|
when: "'memcached' in docker_additional_services"
|
||||||
|
|
||||||
- name: Add pdo_mysql php extension to container
|
- name: Add pdo_mysql php extension to container
|
||||||
set_fact:
|
set_fact:
|
||||||
dockerfile: "{{ dockerfile | combine({'run': ['docker-php-ext-install -j$(nproc) pdo_mysql']}, list_merge='append') }}"
|
dockerfile: "{{ dockerfile + ['RUN docker-php-ext-install -j$(nproc) pdo_mysql'] }}"
|
||||||
when: "'pdo_mysql' in wordpress_php_extensions"
|
when: "'pdo_mysql' in wordpress_php_extensions"
|
||||||
|
|
||||||
- name: Include additional volume vars
|
- name: Include additional volume vars
|
||||||
|
|||||||
Reference in New Issue
Block a user