mirror of
https://github.com/devilbox/docker-php-fpm.git
synced 2025-12-10 11:01:14 +00:00
Split out tools
This commit is contained in:
402
.ansible/DOCKERFILES/Dockerfile-slim.j2
Normal file
402
.ansible/DOCKERFILES/Dockerfile-slim.j2
Normal file
@@ -0,0 +1,402 @@
|
||||
# vi: ft=dockerfile
|
||||
{{ edit_comment_slim }}
|
||||
{% import './jinja2/macros-work.j2' as fn %}
|
||||
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
###
|
||||
### Stage 1/4: Devilbox slim image (BASE BUILDER)
|
||||
###
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
|
||||
###
|
||||
### Installs all cli tools required to run Devilbox and its intranet
|
||||
###
|
||||
FROM devilbox/php-fpm:{{ php_version }}-prod as devilbox-slim-base-builder
|
||||
|
||||
###
|
||||
### Install apt Tools
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
apt-transport-https \
|
||||
ca-certificates \
|
||||
curl \
|
||||
dirmngr \
|
||||
gnupg
|
||||
|
||||
###
|
||||
### Add apt repositories
|
||||
###
|
||||
RUN set -eux \
|
||||
{%- for repo in base_apt_repositories_enabled -%}
|
||||
{#- Not disabled -#}
|
||||
{%- if ('disabled' not in base_apt_repositories_available[repo]) or (php_version not in base_apt_repositories_available[repo]['disabled']) -%}
|
||||
{#- -#}
|
||||
{#- [PRE] -#}
|
||||
{%- if fn.get_pre(php_version, repo, base_apt_repositories_available) | length -%}
|
||||
{{ "\n\t" }}&& {{ fn.get_pre(php_version, repo, base_apt_repositories_available) | indent( "\t" ) }}{{ "\t\\" }}
|
||||
{%- endif -%}
|
||||
{#- -#}
|
||||
{#- [KEY] -#}
|
||||
{%- if fn.tool_repo_get_key(php_version, repo, base_apt_repositories_available) | length -%}
|
||||
{{ "\n\t" }}&& APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv {{ fn.tool_repo_get_key(php_version, repo, base_apt_repositories_available) }} \
|
||||
{%- endif -%}
|
||||
{#- -#}
|
||||
{#- [DEB] -#}
|
||||
{%- if fn.tool_repo_get_deb(php_version, repo, base_apt_repositories_available) | length -%}
|
||||
{{ "\n\t" }}&& echo "{{ fn.tool_repo_get_deb(php_version, repo, base_apt_repositories_available) }}" > /etc/apt/sources.list.d/{{ repo }}.list \
|
||||
{%- endif -%}
|
||||
{%- endif -%}
|
||||
{%- endfor -%}
|
||||
{{ "\n\t" }}&& true
|
||||
|
||||
###
|
||||
### Add common build tools
|
||||
###
|
||||
RUN set -eux \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get update \
|
||||
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
file \
|
||||
git \
|
||||
{% if php_version in [7.1, 7.2, 7.3, 7.4, 8.0, 8.1, 8.2] %}
|
||||
mariadb-client \
|
||||
{% else %}
|
||||
mysql-client \
|
||||
{% endif %}
|
||||
redis-tools \
|
||||
sqlite3
|
||||
|
||||
###
|
||||
### Devilbox required cli tools from group_vars (slim.yml)
|
||||
###
|
||||
{% for tool in base_software_enabled -%}
|
||||
{# Not disabled #}
|
||||
{%- if ('disabled' not in base_software_available[tool]) or (php_version not in base_software_available[tool]['disabled']) -%}
|
||||
{{- "\n" }}# -------------------- {{ tool }} --------------------
|
||||
{{- "\n" }}RUN set -eux \
|
||||
{#- -#}
|
||||
{#- [PRE] -#}
|
||||
{%- if fn.get_pre(php_version, tool, base_software_available) | length -%}
|
||||
{{ "\n\t" }}&& {{ fn.get_pre(php_version, tool, base_software_available) | indent( "\t" ) }}{{ "\t\\" }}
|
||||
{%- endif -%}
|
||||
{#- -#}
|
||||
{#- [COMMAND] -#}
|
||||
{%- if fn.get_type(php_version, tool, base_software_available) == 'custom' -%}
|
||||
{{ "\n\t" }}&& {{ fn.tool_custom_get_command(php_version, tool, base_software_available) | indent( "\t" ) }}{{ "\t\\" }}
|
||||
{%- endif -%}
|
||||
{#- -#}
|
||||
{#- [POST] -#}
|
||||
{%- if fn.get_post(php_version, tool, base_software_available) | length -%}
|
||||
{{ "\n\t" }}&& {{ fn.get_post(php_version, tool, base_software_available) | indent( "\t" ) }}{{ "\t\\" }}
|
||||
{%- endif -%}
|
||||
{#- -#}
|
||||
{#- [CHECK] -#}
|
||||
{%- if 'check' in base_software_available[tool] -%}
|
||||
{{ "\n\t" }}&& {{ base_software_available[tool]['check'] | indent( "\t" ) }}{{ "\t\\" }}
|
||||
{%- endif -%}
|
||||
{#- -#}
|
||||
{#- Finalize -#}
|
||||
{{ "\n\t" }}&& true{{ "\n" }}
|
||||
{%- endif -%}
|
||||
{%- endfor %}
|
||||
|
||||
|
||||
###
|
||||
### Prepare libraries for copying (keep symlinks)
|
||||
###
|
||||
RUN set -eux \
|
||||
&& LIB_GNU_DIR="/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)" \
|
||||
&& USR_LIB_DIR="/usr/lib" \
|
||||
&& USR_LIB_GNU_DIR="/usr/lib/$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)" \
|
||||
\
|
||||
&& mkdir /tmp/lib-gnu \
|
||||
&& mkdir /tmp/usr-lib \
|
||||
&& mkdir /tmp/usr-lib-gnu \
|
||||
\
|
||||
&& LIB_GNU="libreadline" \
|
||||
&& USR_LIB="libsnappy libtcmalloc libv8" \
|
||||
&& USR_LIB_GNU="liblua libpq libpcrecpp libboost libjemalloc libunwind libhiredis libedit" \
|
||||
\
|
||||
&& for lib in ${LIB_GNU}; do \
|
||||
if ls -1 "${LIB_GNU_DIR}/" | grep "^${lib}" >/dev/null; then \
|
||||
echo "Coping '${lib}' from: ${LIB_GNU_DIR}"; \
|
||||
cp -r ${LIB_GNU_DIR}/${lib}* /tmp/lib-gnu/; \
|
||||
fi \
|
||||
done \
|
||||
&& for lib in ${USR_LIB}; do \
|
||||
if ls -1 "${USR_LIB_DIR}/" | grep "^${lib}" >/dev/null; then \
|
||||
echo "Coping '${lib}' from: ${USR_LIB_DIR}"; \
|
||||
cp -r ${USR_LIB_DIR}/${lib}* /tmp/usr-lib/; \
|
||||
fi \
|
||||
done \
|
||||
&& for lib in ${USR_LIB_GNU}; do \
|
||||
if ls -1 "${USR_LIB_GNU_DIR}/" | grep "^${lib}" >/dev/null; then \
|
||||
echo "Coping '${lib}' from: ${USR_LIB_GNU_DIR}"; \
|
||||
cp -r ${USR_LIB_GNU_DIR}/${lib}* /tmp/usr-lib-gnu/; \
|
||||
fi \
|
||||
done
|
||||
|
||||
|
||||
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
###
|
||||
### Stage 2/4: Devilbox slim image (BASE)
|
||||
###
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
|
||||
###
|
||||
### Copies all cli tools required to run Devilbox and its intranet into a clean image
|
||||
###
|
||||
FROM devilbox/php-fpm:{{ php_version }}-prod as devilbox-slim-base
|
||||
ARG ARCH
|
||||
|
||||
###
|
||||
### Copy libraries
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /tmp/lib-gnu/ /lib/${ARCH}-linux-gnu/
|
||||
COPY --from=devilbox-slim-base-builder /tmp/usr-lib-gnu/ /usr/lib/${ARCH}-linux-gnu/
|
||||
COPY --from=devilbox-slim-base-builder /tmp/usr-lib/ /usr/lib/
|
||||
|
||||
###
|
||||
### System files
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /etc/group /etc/group
|
||||
COPY --from=devilbox-slim-base-builder /etc/passwd /etc/passwd
|
||||
COPY --from=devilbox-slim-base-builder /etc/shadow /etc/shadow
|
||||
|
||||
###
|
||||
### Blackfire
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /etc/blackfire /etc/blackfire
|
||||
COPY --from=devilbox-slim-base-builder /etc/default/blackfire-agent /etc/default/blackfire-agent
|
||||
COPY --from=devilbox-slim-base-builder /usr/bin/blackfire* /usr/bin/
|
||||
COPY --from=devilbox-slim-base-builder /var/log/blackfire /var/log/blackfire
|
||||
|
||||
|
||||
###
|
||||
### Copy mhsendmail
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /usr/local/bin/mhsendmail /usr/local/bin/
|
||||
|
||||
###
|
||||
### Copy Mongo client
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /usr/bin/mongo* /usr/bin/
|
||||
|
||||
###
|
||||
### Copy mysql* binaries
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /usr/bin/mysql* /usr/bin/
|
||||
|
||||
###
|
||||
### Copy mysqldump-secure
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /usr/local/bin/mysqldump-secure /usr/local/bin/
|
||||
COPY --from=devilbox-slim-base-builder /etc/mysqldump-secure.conf /etc/
|
||||
COPY --from=devilbox-slim-base-builder /etc/mysqldump-secure.cnf /etc/
|
||||
COPY --from=devilbox-slim-base-builder /var/log/mysqldump-secure.log /var/log/
|
||||
|
||||
###
|
||||
### Copy PostgreSQL client
|
||||
###
|
||||
RUN set -eux \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/clusterdb \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/createdb \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/createlang \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/createuser \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/dropdb \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/droplang \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/dropuser \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_basebackup \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_dump \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_dumpall \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_isready \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_receivewal \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_receivexlog \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_recvlogical \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pg_restore \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/pgbench \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/psql \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/reindexdb \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/vacuumdb \
|
||||
&& ln -s ../share/postgresql-common/pg_wrapper /usr/bin/vacuumlo
|
||||
|
||||
COPY --from=devilbox-slim-base-builder /usr/lib/postgresql /usr/lib/postgresql
|
||||
#COPY --from=devilbox-slim-base-builder /usr/lib/${ARCH}-linux-gnu/libpq.so* /usr/lib/${ARCH}-linux-gnu/
|
||||
COPY --from=devilbox-slim-base-builder /usr/share/perl5 /usr/share/perl5
|
||||
COPY --from=devilbox-slim-base-builder /usr/share/postgresql-common /usr/share/postgresql-common
|
||||
#COPY --from=devilbox-slim-base-builder /etc/perl /etc/perl
|
||||
#COPY --from=devilbox-slim-base-builder /usr/lib/${ARCH}-linux-gnu/perl-base /usr/lib/${ARCH}-linux-gnu/perl-base
|
||||
#COPY --from=devilbox-slim-base-builder /usr/lib/${ARCH}-linux-gnu/perl5 /usr/lib/${ARCH}-linux-gnu/perl5
|
||||
#COPY --from=devilbox-slim-base-builder /usr/share/postgresql /usr/share/postgresql
|
||||
|
||||
###
|
||||
### Copy redis* binaries
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /usr/bin/redis* /usr/bin/
|
||||
|
||||
|
||||
###
|
||||
### Copy sqlite* binaries
|
||||
###
|
||||
COPY --from=devilbox-slim-base-builder /usr/bin/sqlite* /usr/bin/
|
||||
|
||||
###
|
||||
### Copy configuration files
|
||||
###
|
||||
COPY ./data/php-ini.d/php-{{ php_version }}.ini /usr/local/etc/php/conf.d/xxx-devilbox-default-php.ini
|
||||
COPY ./data/php-fpm.conf/php-fpm-{{ php_version }}.conf /usr/local/etc/php-fpm.conf
|
||||
|
||||
COPY ./data/docker-entrypoint.sh /docker-entrypoint.sh
|
||||
COPY ./data/docker-entrypoint.d/*.sh /docker-entrypoint.d/
|
||||
COPY ./data/bash-devilbox /etc/bash-devilbox
|
||||
COPY ./data/sudo-devilbox /etc/sudoers.d/devilbox
|
||||
|
||||
###
|
||||
### Configure Bash
|
||||
###
|
||||
RUN set -eux \
|
||||
&& { \
|
||||
echo 'PATH="${PATH}:/usr/local/bin:/usr/local/sbin"'; \
|
||||
echo "export PATH"; \
|
||||
echo ". /etc/bash-devilbox"; \
|
||||
echo "if [ -d /etc/bashrc-devilbox.d/ ]; then"; \
|
||||
echo " for f in /etc/bashrc-devilbox.d/*.sh ; do"; \
|
||||
echo " if [ -r \"\${f}\" ]; then"; \
|
||||
echo " . \"\${f}\""; \
|
||||
echo " fi"; \
|
||||
echo " done"; \
|
||||
echo " unset f"; \
|
||||
echo "fi"; \
|
||||
} | tee -a /home/${MY_USER}/.bashrc /root/.bashrc \
|
||||
&& chown ${MY_USER}:${MY_GROUP} /home/${MY_USER}/.bashrc
|
||||
|
||||
|
||||
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
###
|
||||
### Stage 3/4: Devilbox slim image (BASE TEST)
|
||||
###
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
|
||||
###
|
||||
### Test all Devilbox cli utils if copying was successful
|
||||
###
|
||||
FROM devilbox-slim-base as devilbox-slim-base-test
|
||||
RUN set -eux \
|
||||
&& mysql --version \
|
||||
&& redis-cli --version \
|
||||
&& sqlite3 --version
|
||||
|
||||
###
|
||||
### Check if available tools slim
|
||||
###
|
||||
{% for tool in base_software_enabled -%}
|
||||
{# Not disabled #}
|
||||
{%- if ('disabled' not in base_software_available[tool]) or (php_version not in base_software_available[tool]['disabled']) -%}
|
||||
{{- "\n" }}# -------------------- {{ tool }} --------------------
|
||||
{{- "\n" }}RUN set -eux \
|
||||
{#- -#}
|
||||
{#- [CHECK] -#}
|
||||
{%- if 'check' in base_software_available[tool] -%}
|
||||
{{ "\n\t" }}&& {{ base_software_available[tool]['check'] | indent( "\t" ) }}{{ "\t\\" }}
|
||||
{%- endif -%}
|
||||
{#- -#}
|
||||
{#- Finalize -#}
|
||||
{{ "\n\t" }}&& true{{ "\n" }}
|
||||
{%- endif -%}
|
||||
{%- endfor %}
|
||||
|
||||
###
|
||||
### Re-activate modules which have been deactivated in mods (for testing).
|
||||
###
|
||||
RUN set -eux \
|
||||
&& if find /usr/local/lib/php/extensions/ -name phalcon.so | grep phalcon; then \
|
||||
echo "extension=phalcon.so" > /usr/local/etc/php/conf.d/docker-php-ext-phalcon.ini; \
|
||||
fi \
|
||||
&& if find /usr/local/lib/php/extensions/ -name psr.so | grep psr; then \
|
||||
echo "extension=psr.so" > /usr/local/etc/php/conf.d/docker-php-ext-psr.ini; \
|
||||
fi
|
||||
|
||||
###
|
||||
### Check if PHP still works
|
||||
###
|
||||
RUN set -eux \
|
||||
&& echo "date.timezone=UTC" > /usr/local/etc/php/php.ini \
|
||||
&& php -v | grep -oE 'PHP\s[.0-9]+' | grep -oE '[.0-9]+' | grep '^{{ php_version }}' \
|
||||
&& /usr/local/sbin/php-fpm --test \
|
||||
\
|
||||
&& PHP_ERROR="$( php -v 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
|
||||
&& PHP_ERROR="$( php -i 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_ERROR}" ]; then echo "${PHP_ERROR}"; false; fi \
|
||||
\
|
||||
&& PHP_FPM_ERROR="$( php-fpm -v 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
|
||||
&& PHP_FPM_ERROR="$( php-fpm -i 2>&1 1>/dev/null )" \
|
||||
&& if [ -n "${PHP_FPM_ERROR}" ]; then echo "${PHP_FPM_ERROR}"; false; fi \
|
||||
&& rm -f /usr/local/etc/php/php.ini
|
||||
|
||||
|
||||
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
###
|
||||
### Stage 4/4: Devilbox slim image (FINAL)
|
||||
###
|
||||
########################################################################################################################
|
||||
########################################################################################################################
|
||||
|
||||
###
|
||||
### Prepare final base image (STAGE: slim)
|
||||
###
|
||||
FROM devilbox-slim-base as slim
|
||||
MAINTAINER "cytopia" <cytopia@everythingcli.org>
|
||||
|
||||
###
|
||||
### Labels
|
||||
###
|
||||
# https://github.com/opencontainers/image-spec/blob/master/annotations.md
|
||||
#LABEL "org.opencontainers.image.created"=""
|
||||
#LABEL "org.opencontainers.image.version"=""
|
||||
#LABEL "org.opencontainers.image.revision"=""
|
||||
LABEL "maintainer"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.authors"="cytopia <cytopia@everythingcli.org>"
|
||||
LABEL "org.opencontainers.image.url"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.documentation"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.source"="https://github.com/devilbox/docker-php-fpm"
|
||||
LABEL "org.opencontainers.image.vendor"="devilbox"
|
||||
LABEL "org.opencontainers.image.licenses"="MIT"
|
||||
LABEL "org.opencontainers.image.ref.name"="{{ php_version }}-slim"
|
||||
LABEL "org.opencontainers.image.title"="PHP-FPM {{ php_version }}-slim"
|
||||
LABEL "org.opencontainers.image.description"="PHP-FPM {{ php_version }}-slim"
|
||||
|
||||
###
|
||||
### Volumes
|
||||
###
|
||||
VOLUME /shared/backups
|
||||
VOLUME /var/log/php
|
||||
VOLUME /var/mail
|
||||
|
||||
###
|
||||
### Ports
|
||||
###
|
||||
EXPOSE 9000
|
||||
|
||||
###
|
||||
### Where to start inside the container
|
||||
###
|
||||
WORKDIR /shared/httpd
|
||||
|
||||
###
|
||||
### Entrypoint
|
||||
###
|
||||
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/supervisord.conf"]
|
||||
ENTRYPOINT ["/docker-entrypoint.sh"]
|
||||
File diff suppressed because it is too large
Load Diff
@@ -6,6 +6,7 @@
|
||||
edit_comment_base: "# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-base.j2 instead."
|
||||
edit_comment_mods: "# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-mods.j2 instead."
|
||||
edit_comment_prod: "# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-prod.j2 instead."
|
||||
edit_comment_slim: "# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-slim.j2 instead."
|
||||
edit_comment_work: "# Auto-generated via Ansible: edit ./ansible/DOCKERFILES/Dockerfile-work.j2 instead."
|
||||
|
||||
|
||||
@@ -38,7 +39,7 @@ php_all_versions:
|
||||
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
# Docker file paths for each version for base, mods, prod & work
|
||||
# Docker file paths for each version for base, mods, prod, slim & work
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
template_dockerfiles:
|
||||
- src: DOCKERFILES/Dockerfile-base.j2
|
||||
@@ -47,6 +48,8 @@ template_dockerfiles:
|
||||
dst: "../Dockerfiles/mods/Dockerfile-{{ php_version }}"
|
||||
- src: DOCKERFILES/Dockerfile-prod.j2
|
||||
dst: "../Dockerfiles/prod/Dockerfile-{{ php_version }}"
|
||||
- src: DOCKERFILES/Dockerfile-slim.j2
|
||||
dst: "../Dockerfiles/slim/Dockerfile-{{ php_version }}"
|
||||
- src: DOCKERFILES/Dockerfile-work.j2
|
||||
dst: "../Dockerfiles/work/Dockerfile-{{ php_version }}"
|
||||
|
||||
@@ -55,6 +58,7 @@ template_dockerfiles:
|
||||
# Assign php.ini & php-fpm.conf to PHP versions
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
template_configurations:
|
||||
|
||||
# php.ini
|
||||
- src: CONFIGURATIONS/php.ini.j2
|
||||
dst: "../Dockerfiles/base/data/php-ini.d/php-{{ php_version }}.ini"
|
||||
@@ -62,10 +66,11 @@ template_configurations:
|
||||
key: base
|
||||
alt: base
|
||||
- src: CONFIGURATIONS/php.ini.j2
|
||||
dst: "../Dockerfiles/work/data/php-ini.d/php-{{ php_version }}.ini"
|
||||
dst: "../Dockerfiles/slim/data/php-ini.d/php-{{ php_version }}.ini"
|
||||
cfg: "{{ php_settings_ini }}"
|
||||
key: work
|
||||
alt: base # Alternative key to use when definition is not set in 'work'
|
||||
key: slim
|
||||
alt: base # Alternative key to use when definition is not set in 'slim'
|
||||
|
||||
# php-fpm.conf
|
||||
- src: CONFIGURATIONS/php-fpm.conf.j2
|
||||
dst: "../Dockerfiles/base/data/php-fpm.conf/php-fpm-{{ php_version }}.conf"
|
||||
@@ -73,7 +78,7 @@ template_configurations:
|
||||
key: base
|
||||
alt: base
|
||||
- src: CONFIGURATIONS/php-fpm.conf.j2
|
||||
dst: "../Dockerfiles/work/data/php-fpm.conf/php-fpm-{{ php_version }}.conf"
|
||||
dst: "../Dockerfiles/slim/data/php-fpm.conf/php-fpm-{{ php_version }}.conf"
|
||||
cfg: "{{ php_settings_fpm }}"
|
||||
key: work
|
||||
alt: base
|
||||
key: slim
|
||||
alt: base # Alternative key to use when definition is not set in 'slim'
|
||||
|
||||
@@ -54,7 +54,7 @@ php_settings_ini:
|
||||
# ---- Inherits from base ----
|
||||
prod:
|
||||
# ---- Inherits from base and overwrites certain values ----
|
||||
work:
|
||||
slim:
|
||||
# Error reporting
|
||||
error_reporting: E_ALL | E_NOTICE | E_STRICT | E_DEPRECATED
|
||||
xmlrpc_errors: 'Off'
|
||||
@@ -73,6 +73,8 @@ php_settings_ini:
|
||||
xdebug3_mode: 'Off'
|
||||
xdebug3_start_with_request: 'default'
|
||||
xdebug3_client_port: '9000'
|
||||
# ---- Inherits from slim ----
|
||||
work:
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
# php-fpm.conf
|
||||
@@ -109,5 +111,7 @@ php_settings_fpm:
|
||||
mods:
|
||||
# ---- Inherits from base ----
|
||||
prod:
|
||||
# ---- Inherits from base and overwrites certain values ----
|
||||
# ---- Inherits from base ----
|
||||
slim:
|
||||
# ---- Inherits from base ----
|
||||
work:
|
||||
|
||||
522
.ansible/group_vars/all/slim.yml
Normal file
522
.ansible/group_vars/all/slim.yml
Normal file
@@ -0,0 +1,522 @@
|
||||
---
|
||||
###################################################################################################
|
||||
# Docker: slim
|
||||
###################################################################################################
|
||||
|
||||
#
|
||||
# This file holds definition for all devibox/php-fpm:x.y-slim images
|
||||
#
|
||||
|
||||
|
||||
###
|
||||
### Define operating system versions
|
||||
###
|
||||
os_release:
|
||||
# Bullseye (Ubuntu: focal, groovy, hirsute, impish)
|
||||
all:
|
||||
debian: bullseye
|
||||
ubuntu: focal
|
||||
8.2:
|
||||
debian: bullseye
|
||||
ubuntu: focal
|
||||
8.1:
|
||||
debian: bullseye
|
||||
ubuntu: focal
|
||||
8.0:
|
||||
debian: bullseye
|
||||
ubuntu: focal
|
||||
7.4:
|
||||
debian: bullseye
|
||||
ubuntu: focal
|
||||
7.3:
|
||||
debian: bullseye
|
||||
ubuntu: focal
|
||||
# Buster (Ubuntu: bionic, cosmic, disco, eoan)
|
||||
7.2:
|
||||
debian: buster
|
||||
ubuntu: bionic
|
||||
7.1:
|
||||
debian: buster
|
||||
ubuntu: bionic
|
||||
# Strech (Ubuntu: xenial, yakkety, zesty, artful)
|
||||
7.0:
|
||||
debian: stretch
|
||||
ubuntu: xenial
|
||||
5.6:
|
||||
debian: stretch
|
||||
ubuntu: xenial
|
||||
# Jessie (Ubuntu: trusty, utopic, vivid, wily)
|
||||
5.5:
|
||||
debian: jessie
|
||||
ubuntu: trusty
|
||||
5.4:
|
||||
debian: jessie
|
||||
ubuntu: trusty
|
||||
5.3:
|
||||
debian: jessie
|
||||
ubuntu: trusty
|
||||
5.2:
|
||||
debian: jessie
|
||||
ubuntu: trusty
|
||||
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
# Apt repositories to enable (in defined order)
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
base_apt_repositories_enabled:
|
||||
- backports
|
||||
- blackfire
|
||||
- mongo
|
||||
- pgsql
|
||||
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
# Software to install (in defined order)
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
base_software_enabled:
|
||||
- blackfire
|
||||
- mhsendmail
|
||||
- mongo_client
|
||||
- mysqldumpsecure
|
||||
- pgsql_client
|
||||
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
# Apt repository definition
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
|
||||
# all: is generic version of defines
|
||||
# 7.2: is specific version of defines
|
||||
# disabled: [optional] Array of PHP versions for which to disable this module
|
||||
#
|
||||
# all, 7.2, 7.1, 7.0, 5.6, 5.5, 5.4:
|
||||
# deb: Deb line to add to sources list
|
||||
# key: [optional] Key id to add for repository
|
||||
# pre: [optional] Run custom command to add gpg key for repository
|
||||
#
|
||||
base_apt_repositories_available:
|
||||
|
||||
###
|
||||
### Backports
|
||||
###
|
||||
backports:
|
||||
# [Bullseye]
|
||||
all:
|
||||
type: repo
|
||||
pre: apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 648ACFD622F3D138
|
||||
deb: deb http://ftp.debian.org/debian {{ os_release['all'].debian }}-backports main
|
||||
# [Buster]
|
||||
7.2:
|
||||
type: repo
|
||||
pre: apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 648ACFD622F3D138
|
||||
deb: deb http://ftp.debian.org/debian {{ os_release[7.2].debian }}-backports main
|
||||
# [Buster]
|
||||
7.1:
|
||||
type: repo
|
||||
pre: apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 648ACFD622F3D138
|
||||
deb: deb http://ftp.debian.org/debian {{ os_release[7.1].debian }}-backports main
|
||||
# [Stretch]
|
||||
7.0:
|
||||
type: repo
|
||||
pre: apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 648ACFD622F3D138
|
||||
deb: deb http://ftp.debian.org/debian {{ os_release[7.0].debian }}-backports main
|
||||
# [Stretch]
|
||||
5.6:
|
||||
type: repo
|
||||
pre: apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 648ACFD622F3D138
|
||||
deb: deb http://ftp.debian.org/debian {{ os_release[5.6].debian }}-backports main
|
||||
# [Jessie]
|
||||
5.5:
|
||||
type: repo
|
||||
pre: echo 'Acquire::Check-Valid-Until no;' > /etc/apt/apt.conf.d/99no-check-valid-until
|
||||
deb: deb [trusted=yes] http://archive.debian.org/debian {{ os_release[5.5].debian }}-backports main
|
||||
# [Jessie]
|
||||
5.4:
|
||||
type: repo
|
||||
pre: echo 'Acquire::Check-Valid-Until no;' > /etc/apt/apt.conf.d/99no-check-valid-until
|
||||
deb: deb [trusted=yes] http://archive.debian.org/debian {{ os_release[5.4].debian }}-backports main
|
||||
# [Jessie]
|
||||
5.3:
|
||||
type: repo
|
||||
pre: echo 'Acquire::Check-Valid-Until no;' > /etc/apt/apt.conf.d/99no-check-valid-until
|
||||
deb: deb [trusted=yes] http://archive.debian.org/debian {{ os_release[5.3].debian }}-backports main
|
||||
# [Jessie]
|
||||
5.2:
|
||||
type: repo
|
||||
pre: echo 'Acquire::Check-Valid-Until no;' > /etc/apt/apt.conf.d/99no-check-valid-until
|
||||
deb: deb [trusted=yes] http://archive.debian.org/debian {{ os_release[5.2].debian }}-backports main
|
||||
|
||||
###
|
||||
### Blackfire
|
||||
###
|
||||
blackfire:
|
||||
all:
|
||||
type: repo
|
||||
deb: deb http://packages.blackfire.io/debian any main
|
||||
pre: curl -sS -L --fail "https://packages.blackfire.io/gpg.key" | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add -
|
||||
|
||||
###
|
||||
### MongoDB (currently obsolete)
|
||||
###
|
||||
mongo:
|
||||
# 8.2: mongodb-org-(tools|shell) (amd64, arm64)
|
||||
# 8.1: mongodb-org-(tools|shell) (amd64, arm64)
|
||||
# 8.0: mongodb-org-(tools|shell) (amd64, arm64)
|
||||
# 7.4: mongodb-org-(tools|shell) (amd64, arm64)
|
||||
# 7.3: mongodb-org-(tools|shell) (amd64, arm64)
|
||||
# 7.2: mongo-tools OR mongodb-org-(tools|shell) (amd64, arm64)
|
||||
# 7.1: mongo-tools OR mongodb-org-(tools|shell) (amd64, arm64)
|
||||
# 7.0: mongodb-clients & mongo-tools (amd64, arm64)
|
||||
# 5.6: mongodb-clients & mongo-tools (amd64, arm64)
|
||||
# 5.5: mongodb-clients (amd64)
|
||||
# 5.4: mongodb-clients (amd64)
|
||||
# 5.3: mongodb-clients (amd64)
|
||||
# 5.2: mongodb-clients (amd64)
|
||||
disabled: [5.2, 5.3, 5.4, 5.5, 5.6, 7.0] # TODO: Why were those disabled?
|
||||
# [Bullseye] Ubuntu repository required for arm64 support instead
|
||||
all:
|
||||
type: repo
|
||||
# gpg --dry-run --with-fingerprint < <(curl https://www.mongodb.org/static/pgp/server-4.4.asc) | grep fingerprint | sed 's/.*=//g' | sed 's/ //g'
|
||||
deb: deb http://repo.mongodb.org/apt/ubuntu {{ os_release['all'].ubuntu }}/mongodb-org/4.4 multiverse
|
||||
key: 20691EEC35216C63CAF66CE1656408E390CFB1F5
|
||||
# [Buster] Ubuntu repository required for arm64 support instead
|
||||
7.2:
|
||||
type: repo
|
||||
# gpg --dry-run --with-fingerprint < <(curl https://www.mongodb.org/static/pgp/server-4.4.asc) | grep fingerprint | sed 's/.*=//g' | sed 's/ //g'
|
||||
deb: deb http://repo.mongodb.org/apt/ubuntu {{ os_release[7.2].ubuntu }}/mongodb-org/4.4 multiverse
|
||||
key: 20691EEC35216C63CAF66CE1656408E390CFB1F5
|
||||
# [Buster] Ubuntu repository required for arm64 support instead
|
||||
7.1:
|
||||
type: repo
|
||||
# gpg --dry-run --with-fingerprint < <(curl https://www.mongodb.org/static/pgp/server-4.4.asc) | grep fingerprint | sed 's/.*=//g' | sed 's/ //g'
|
||||
deb: deb http://repo.mongodb.org/apt/ubuntu {{ os_release[7.1].ubuntu }}/mongodb-org/4.4 multiverse
|
||||
key: 20691EEC35216C63CAF66CE1656408E390CFB1F5
|
||||
|
||||
###
|
||||
### PostgrSQL (currently obsolete)
|
||||
###
|
||||
pgsql:
|
||||
# [Bullseye]
|
||||
all:
|
||||
type: repo
|
||||
deb: deb http://apt.postgresql.org/pub/repos/apt/ {{ os_release['all'].debian }}-pgdg main
|
||||
pre: curl -sS -k -L --fail https://www.postgresql.org/media/keys/ACCC4CF8.asc | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add -
|
||||
# [Buster]
|
||||
7.2:
|
||||
type: repo
|
||||
deb: deb http://apt.postgresql.org/pub/repos/apt/ {{ os_release[7.2].debian }}-pgdg main
|
||||
pre: curl -sS -k -L --fail https://www.postgresql.org/media/keys/ACCC4CF8.asc | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add -
|
||||
# [Buster]
|
||||
7.1:
|
||||
type: repo
|
||||
deb: deb http://apt.postgresql.org/pub/repos/apt/ {{ os_release[7.1].debian }}-pgdg main
|
||||
pre: curl -sS -k -L --fail https://www.postgresql.org/media/keys/ACCC4CF8.asc | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add -
|
||||
# [Stretch]
|
||||
7.0:
|
||||
type: repo
|
||||
deb: deb https://apt-archive.postgresql.org/pub/repos/apt/ {{ os_release[7.0].debian }}-pgdg main
|
||||
# [Stretch]
|
||||
5.6:
|
||||
type: repo
|
||||
deb: deb https://apt-archive.postgresql.org/pub/repos/apt/ {{ os_release[5.6].debian }}-pgdg main
|
||||
# [Jessie]
|
||||
5.5:
|
||||
type: repo
|
||||
deb: deb https://apt-archive.postgresql.org/pub/repos/apt/ {{ os_release[5.5].debian }}-pgdg main
|
||||
# [Jessie]
|
||||
5.4:
|
||||
type: repo
|
||||
deb: deb https://apt-archive.postgresql.org/pub/repos/apt/ {{ os_release[5.4].debian }}-pgdg main
|
||||
# [Jessie]
|
||||
5.3:
|
||||
type: repo
|
||||
deb: deb https://apt-archive.postgresql.org/pub/repos/apt/ {{ os_release[5.3].debian }}-pgdg main
|
||||
# [Jessie]
|
||||
5.2:
|
||||
type: repo
|
||||
deb: deb https://apt-archive.postgresql.org/pub/repos/apt/ {{ os_release[5.2].debian }}-pgdg main
|
||||
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
# Essential Software definition
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
|
||||
# all: is generic version of defines
|
||||
# 7.2: is specific version of defines
|
||||
# disabled: [optional] Array of PHP versions for which to disable this module
|
||||
# check: [optional] Include a check command to test if it was installed successfully
|
||||
#
|
||||
# all, 7.2, 7.1, 7.0, 5.6, 5.5, 5.4:
|
||||
# pre: [optional] Run command before 'command:' statement
|
||||
# command: Command to execute
|
||||
# post: [optional] Run command after 'command:' statement
|
||||
#
|
||||
base_software_available:
|
||||
|
||||
###
|
||||
### Blackfire
|
||||
###
|
||||
blackfire:
|
||||
check: |
|
||||
blackfire version \
|
||||
&& blackfire-agent -v \
|
||||
all:
|
||||
type: custom
|
||||
pre: |
|
||||
apt-get update \
|
||||
command: |
|
||||
apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
blackfire-agent \
|
||||
post: rm -rf /var/lib/apt/lists/*
|
||||
|
||||
###
|
||||
### mhsendmail
|
||||
###
|
||||
mhsendmail:
|
||||
all:
|
||||
type: custom
|
||||
command: |
|
||||
if [ "$(dpkg-architecture --query DEB_HOST_ARCH)" = "amd64" ]; then \
|
||||
curl -sS -L --fail https://github.com/devilbox/mhsendmail/releases/download/v0.3.0/mhsendmail_linux_amd64 > mhsendmail_linux_amd64 \
|
||||
&& chmod +x mhsendmail_linux_amd64 \
|
||||
&& mv mhsendmail_linux_amd64 /usr/local/bin/mhsendmail; \
|
||||
else \
|
||||
printf '%s\n%s\n%s\n' '#!/bin/sh' 'echo "Not available for arm64."' 'exit 1' > /usr/local/bin/mhsendmail \
|
||||
&& chmod +x /usr/local/bin/mhsendmail; \
|
||||
fi \
|
||||
|
||||
###
|
||||
### MongoDB Command line client
|
||||
###
|
||||
# 8.2: mongodb-org-(tools|shell) (amd64, arm64)
|
||||
# 8.1: mongodb-org-(tools|shell) (amd64, arm64)
|
||||
# 8.0: mongodb-org-(tools|shell) (amd64, arm64)
|
||||
# 7.4: mongodb-org-(tools|shell) (amd64, arm64)
|
||||
# 7.3: mongodb-org-(tools|shell) (amd64, arm64)
|
||||
# 7.2: mongodb-org-(tools|shell) (amd64, arm64)
|
||||
# 7.1: mongodb-org-(tools|shell) (amd64, arm64)
|
||||
# 7.0: mongodb-clients & mongo-tools (amd64, arm64)
|
||||
# 5.6: mongodb-clients & mongo-tools (amd64, arm64)
|
||||
# 5.5: mongodb-clients (amd64)
|
||||
# 5.4: mongodb-clients (amd64)
|
||||
# 5.3: mongodb-clients (amd64)
|
||||
# 5.2: mongodb-clients (amd64)
|
||||
mongo_client:
|
||||
check: |
|
||||
if echo '{{ php_version }}' | grep -E '^(5.2|5.3|5.4|5.5|5.6|7.0)$' >/dev/null; then \
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
mongofiles --version; \
|
||||
fi \
|
||||
else \
|
||||
mongofiles --version; \
|
||||
fi \
|
||||
all:
|
||||
type: custom
|
||||
pre: |
|
||||
APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 20691EEC35216C63CAF66CE1656408E390CFB1F5 \
|
||||
&& echo "deb http://repo.mongodb.org/apt/ubuntu {{ os_release[php_version].ubuntu }}/mongodb-org/4.4 multiverse" > /etc/apt/sources.list.d/mongo.list \
|
||||
&& apt-get update \
|
||||
command: |
|
||||
apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
mongodb-org-tools \
|
||||
mongodb-org-shell \
|
||||
post: rm -rf /var/lib/apt/lists/*
|
||||
7.0:
|
||||
type: custom
|
||||
pre: apt-get update
|
||||
command: |
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
mongodb-clients \
|
||||
mongo-tools; \
|
||||
else \
|
||||
apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
mongodb-clients; \
|
||||
fi \
|
||||
5.6:
|
||||
type: custom
|
||||
pre: apt-get update
|
||||
command: |
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
mongodb-clients \
|
||||
mongo-tools; \
|
||||
else \
|
||||
apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
mongodb-clients; \
|
||||
fi \
|
||||
5.5:
|
||||
type: custom
|
||||
pre: apt-get update
|
||||
command: |
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
mongodb-clients; \
|
||||
fi \
|
||||
5.4:
|
||||
type: custom
|
||||
pre: apt-get update
|
||||
command: |
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
mongodb-clients; \
|
||||
fi \
|
||||
5.3:
|
||||
type: custom
|
||||
pre: apt-get update
|
||||
command: |
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
mongodb-clients; \
|
||||
fi \
|
||||
5.2:
|
||||
type: custom
|
||||
pre: apt-get update
|
||||
command: |
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
mongodb-clients; \
|
||||
fi \
|
||||
|
||||
###
|
||||
### mysqldump-secure
|
||||
###
|
||||
mysqldumpsecure:
|
||||
check: mysqldump-secure --version | grep -E 'Version:\s*[0-9][.0-9]+'
|
||||
all:
|
||||
type: custom
|
||||
command: |
|
||||
git clone https://github.com/cytopia/mysqldump-secure.git /usr/local/src/mysqldump-secure \
|
||||
&& cd /usr/local/src/mysqldump-secure \
|
||||
&& git checkout $(git describe --abbrev=0 --tags) \
|
||||
&& cp /usr/local/src/mysqldump-secure/bin/mysqldump-secure /usr/local/bin \
|
||||
&& cp /usr/local/src/mysqldump-secure/etc/mysqldump-secure.conf /etc \
|
||||
&& cp /usr/local/src/mysqldump-secure/etc/mysqldump-secure.cnf /etc \
|
||||
&& touch /var/log/mysqldump-secure.log \
|
||||
&& chown ${MY_USER}:${MY_GROUP} /etc/mysqldump-secure.* \
|
||||
&& chown ${MY_USER}:${MY_GROUP} /var/log/mysqldump-secure.log \
|
||||
&& chmod 0400 /etc/mysqldump-secure.conf \
|
||||
&& chmod 0400 /etc/mysqldump-secure.cnf \
|
||||
&& chmod 0644 /var/log/mysqldump-secure.log \
|
||||
&& sed -i'' 's/^COMPRESS_ARG=.*/COMPRESS_ARG="-9 -c"/g' /etc/mysqldump-secure.conf \
|
||||
&& sed -i'' 's/^DUMP_DIR=.*/DUMP_DIR="\/shared\/backups\/mysql"/g' /etc/mysqldump-secure.conf \
|
||||
&& sed -i'' 's/^DUMP_DIR_CHMOD=.*/DUMP_DIR_CHMOD="0755"/g' /etc/mysqldump-secure.conf \
|
||||
&& sed -i'' 's/^DUMP_FILE_CHMOD=.*/DUMP_FILE_CHMOD="0644"/g' /etc/mysqldump-secure.conf \
|
||||
&& sed -i'' 's/^LOG_CHMOD=.*/LOG_CHMOD="0644"/g' /etc/mysqldump-secure.conf \
|
||||
&& sed -i'' 's/^NAGIOS_LOG=.*/NAGIOS_LOG=0/g' /etc/mysqldump-secure.conf \
|
||||
&& cd / \
|
||||
&& rm -rf /usr/local/src/mysqldump-secure \
|
||||
|
||||
###
|
||||
### PostgrSQL Command line client
|
||||
###
|
||||
# 8.2: (amd64, arm64)
|
||||
# 8.1: (amd64, arm64)
|
||||
# 8.0: (amd64, arm64)
|
||||
# 7.4: (amd64, arm64)
|
||||
# 7.3: (amd64, arm64)
|
||||
# 7.2: (amd64, arm64)
|
||||
# 7.1: (amd64, arm64)
|
||||
# 7.0: (amd64)
|
||||
# 5.6: (amd64)
|
||||
# 5.5: (amd64)
|
||||
# 5.4: (amd64)
|
||||
# 5.3: (amd64)
|
||||
# 5.2: (amd64)
|
||||
pgsql_client:
|
||||
check: |
|
||||
if echo '{{ php_version }}' | grep -E '^(5.2|5.3|5.4|5.5|5.6|7.0)$' >/dev/null; then \
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
pg_isready --version; \
|
||||
fi \
|
||||
else \
|
||||
pg_isready --version; \
|
||||
fi \
|
||||
all:
|
||||
type: custom
|
||||
pre: |
|
||||
curl -sS -k -L --fail https://www.postgresql.org/media/keys/ACCC4CF8.asc | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
||||
&& echo "deb http://apt.postgresql.org/pub/repos/apt/ {{ os_release[php_version].debian }}-pgdg main" > /etc/apt/sources.list.d/pgsql.list \
|
||||
&& apt-get update \
|
||||
command: |
|
||||
apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
postgresql-client \
|
||||
post: rm -rf /var/lib/apt/lists/*
|
||||
7.0:
|
||||
type: custom
|
||||
pre: |
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
curl -sS -k -L --fail https://www.postgresql.org/media/keys/ACCC4CF8.asc | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
||||
&& echo "deb https://apt-archive.postgresql.org/pub/repos/apt/ {{ os_release[php_version].debian }}-pgdg main" > /etc/apt/sources.list.d/pgsql.list \
|
||||
&& apt-get update; \
|
||||
fi \
|
||||
command: |
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
postgresql-client; \
|
||||
fi \
|
||||
5.6:
|
||||
type: custom
|
||||
pre: |
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
curl -sS -k -L --fail https://www.postgresql.org/media/keys/ACCC4CF8.asc | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
||||
&& echo "deb https://apt-archive.postgresql.org/pub/repos/apt/ {{ os_release[php_version].debian }}-pgdg main" > /etc/apt/sources.list.d/pgsql.list \
|
||||
&& apt-get update; \
|
||||
fi \
|
||||
command: |
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
postgresql-client; \
|
||||
fi \
|
||||
5.5:
|
||||
type: custom
|
||||
pre: |
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
curl -sS -k -L --fail https://www.postgresql.org/media/keys/ACCC4CF8.asc | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
||||
&& echo "deb https://apt-archive.postgresql.org/pub/repos/apt/ {{ os_release[php_version].debian }}-pgdg main" > /etc/apt/sources.list.d/pgsql.list \
|
||||
&& apt-get update; \
|
||||
fi \
|
||||
command: |
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
postgresql-client; \
|
||||
fi \
|
||||
5.4:
|
||||
type: custom
|
||||
pre: |
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
curl -sS -k -L --fail https://www.postgresql.org/media/keys/ACCC4CF8.asc | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
||||
&& echo "deb https://apt-archive.postgresql.org/pub/repos/apt/ {{ os_release[php_version].debian }}-pgdg main" > /etc/apt/sources.list.d/pgsql.list \
|
||||
&& apt-get update; \
|
||||
fi \
|
||||
command: |
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
postgresql-client; \
|
||||
fi \
|
||||
5.3:
|
||||
type: custom
|
||||
pre: |
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
curl -sS -k -L --fail https://www.postgresql.org/media/keys/ACCC4CF8.asc | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
||||
&& echo "deb https://apt-archive.postgresql.org/pub/repos/apt/ {{ os_release[php_version].debian }}-pgdg main" > /etc/apt/sources.list.d/pgsql.list \
|
||||
&& apt-get update; \
|
||||
fi \
|
||||
command: |
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
postgresql-client; \
|
||||
fi \
|
||||
5.2:
|
||||
type: custom
|
||||
pre: |
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
curl -sS -k -L --fail https://www.postgresql.org/media/keys/ACCC4CF8.asc | APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 apt-key add - \
|
||||
&& echo "deb https://apt-archive.postgresql.org/pub/repos/apt/ {{ os_release[php_version].debian }}-pgdg main" > /etc/apt/sources.list.d/pgsql.list \
|
||||
&& apt-get update; \
|
||||
fi \
|
||||
command: |
|
||||
if [ "$(dpkg-architecture --query DEB_BUILD_ARCH)" = "amd64" ]; then \
|
||||
apt-get install -y --no-install-recommends --no-install-suggests \
|
||||
postgresql-client; \
|
||||
fi \
|
||||
262
.ansible/group_vars/all/work-help.yml
Normal file
262
.ansible/group_vars/all/work-help.yml
Normal file
@@ -0,0 +1,262 @@
|
||||
---
|
||||
###################################################################################################
|
||||
# Docker: work (docker stage: help)
|
||||
###################################################################################################
|
||||
|
||||
#
|
||||
# This file holds definition for all devibox/php-fpm:x.y-work images
|
||||
#
|
||||
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
# Global variables
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
composer_home: /usr/local/src/composer
|
||||
nvm_home: /opt/nvm
|
||||
node_version: --lts
|
||||
|
||||
directory_to_clean:
|
||||
- .*json
|
||||
- .ansible
|
||||
- .cache
|
||||
- .composer
|
||||
- .config
|
||||
- .console
|
||||
- .drush
|
||||
- .gem
|
||||
- .local
|
||||
- .node
|
||||
- .npm
|
||||
- .pm2
|
||||
- .subversion
|
||||
- .v8*
|
||||
- node_modules
|
||||
- yarn.lock
|
||||
|
||||
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
# Software to install (in defined order)
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
help_software_enabled:
|
||||
- composer
|
||||
- nvm
|
||||
- pip
|
||||
|
||||
|
||||
## -------------------------------------------------------------------------------------------------
|
||||
## Software definition
|
||||
## -------------------------------------------------------------------------------------------------
|
||||
#
|
||||
# all: is generic version of defines
|
||||
# 7.2: is specific version of defines
|
||||
# disabled: [optional] Array of PHP versions for which to disable this module
|
||||
# check: [optional] Include a check command to test if it was installed successfully
|
||||
#
|
||||
# all, 7.2, 7.1, 7.0, 5.6, 5.5, 5.4:
|
||||
# pre: [optional] Run command before 'command:' statement
|
||||
# command: Command to execute
|
||||
# post: [optional] Run command after 'command:' statement
|
||||
#
|
||||
help_software_available:
|
||||
|
||||
###
|
||||
### Composer
|
||||
###
|
||||
composer:
|
||||
disabled: [5.2]
|
||||
check: composer --version 2>/dev/null | grep -Ei '(composer|version)\s*[0-9][.0-9]+'
|
||||
all:
|
||||
type: custom
|
||||
pre: |
|
||||
COMPOSER_1_VERSION="latest-1.x" \
|
||||
&& COMPOSER_2_VERSION="latest-2.x" \
|
||||
command: |
|
||||
curl -sS -L --fail "https://getcomposer.org/download/${COMPOSER_1_VERSION}/composer.phar" > /usr/local/bin/composer-1 \
|
||||
&& curl -sS -L --fail "https://getcomposer.org/download/${COMPOSER_2_VERSION}/composer.phar" > /usr/local/bin/composer-2 \
|
||||
&& chmod +x /usr/local/bin/composer-1 \
|
||||
&& chmod +x /usr/local/bin/composer-2 \
|
||||
post: |
|
||||
ln -sf /usr/local/bin/composer-2 /usr/local/bin/composer \
|
||||
7.1:
|
||||
type: custom
|
||||
pre: |
|
||||
COMPOSER_1_VERSION="latest-1.x" \
|
||||
&& COMPOSER_2_VERSION="latest-2.2.x" \
|
||||
7.0:
|
||||
type: custom
|
||||
pre: |
|
||||
COMPOSER_1_VERSION="latest-1.x" \
|
||||
&& COMPOSER_2_VERSION="latest-2.2.x" \
|
||||
5.6:
|
||||
type: custom
|
||||
pre: |
|
||||
COMPOSER_1_VERSION="latest-1.x" \
|
||||
&& COMPOSER_2_VERSION="latest-2.2.x" \
|
||||
5.5:
|
||||
type: custom
|
||||
pre: |
|
||||
COMPOSER_1_VERSION="latest-1.x" \
|
||||
&& COMPOSER_2_VERSION="latest-2.2.x" \
|
||||
5.4:
|
||||
type: custom
|
||||
pre: |
|
||||
COMPOSER_1_VERSION="latest-1.x" \
|
||||
&& COMPOSER_2_VERSION="latest-2.2.x" \
|
||||
5.3:
|
||||
type: custom
|
||||
pre: |
|
||||
COMPOSER_1_VERSION="latest-1.x" \
|
||||
&& COMPOSER_2_VERSION="latest-2.2.x" \
|
||||
post: |
|
||||
ln -sf /usr/local/bin/composer-1 /usr/local/bin/composer \
|
||||
|
||||
###
|
||||
### nvm
|
||||
###
|
||||
nvm:
|
||||
check: |
|
||||
su -c '. {{ nvm_home }}/nvm.sh; nvm --version' devilbox | grep -E '^v?[0-9][.0-9]+' \
|
||||
&& su -c '. {{ nvm_home }}/nvm.sh; node --version' devilbox | grep -E '^v?[0-9][.0-9]+' \
|
||||
&& su -c '. {{ nvm_home }}/nvm.sh; yarn --version' devilbox | grep -E '^v?[0-9][.0-9]+' \
|
||||
all:
|
||||
type: custom
|
||||
pre: |
|
||||
NODE_VERSION="{{ node_version }}" \
|
||||
command: |
|
||||
NVM_VERSION="$( \
|
||||
curl -sS 'https://github.com/nvm-sh/nvm/releases' \
|
||||
| grep -Eo '/nvm-sh/nvm/releases/tag/v?[.0-9]+"' \
|
||||
| grep -Eo 'v?[.0-9]+' \
|
||||
| sort -V \
|
||||
| tail -1 \
|
||||
)" \
|
||||
&& mkdir -p {{ nvm_home }} \
|
||||
&& curl -o- "https://raw.githubusercontent.com/nvm-sh/nvm/${NVM_VERSION}/install.sh" \
|
||||
| NVM_DIR="{{ nvm_home }}" bash \
|
||||
\
|
||||
&& { \
|
||||
echo 'export NVM_DIR="{{ nvm_home }}"'; \
|
||||
echo '[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm'; \
|
||||
echo '[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion'; \
|
||||
} >> /home/devilbox/.bashrc \
|
||||
\
|
||||
&& chown -R devilbox:devilbox "{{ nvm_home }}" \
|
||||
# Install latest and LTS version and yarn
|
||||
post: |
|
||||
su -c ". {{ nvm_home }}/nvm.sh; nvm install ${NODE_VERSION}" devilbox \
|
||||
&& su -c ". {{ nvm_home }}/nvm.sh; nvm use ${NODE_VERSION}" devilbox \
|
||||
&& su -c ". {{ nvm_home }}/nvm.sh; corepack enable" devilbox \
|
||||
\
|
||||
&& ln -s "{{ nvm_home }}/versions/node/$(su -c '. {{ nvm_home }}/nvm.sh; node --version' devilbox)/bin/corepack" /usr/local/bin/ \
|
||||
&& ln -s "{{ nvm_home }}/versions/node/$(su -c '. {{ nvm_home }}/nvm.sh; node --version' devilbox)/bin/node" /usr/local/bin/ \
|
||||
&& ln -s "{{ nvm_home }}/versions/node/$(su -c '. {{ nvm_home }}/nvm.sh; node --version' devilbox)/bin/npm" /usr/local/bin/ \
|
||||
&& ln -s "{{ nvm_home }}/versions/node/$(su -c '. {{ nvm_home }}/nvm.sh; node --version' devilbox)/bin/npx" /usr/local/bin/ \
|
||||
&& ln -s "{{ nvm_home }}/versions/node/$(su -c '. {{ nvm_home }}/nvm.sh; node --version' devilbox)/bin/yarn" /usr/local/bin/ \
|
||||
\
|
||||
&& chmod 0777 {{ nvm_home }} \
|
||||
&& find {{ nvm_home }} -type f -print0 | xargs -n1 -0 chmod go+w \
|
||||
&& find {{ nvm_home }} -type d -print0 | xargs -n1 -0 chmod 0777 \
|
||||
\
|
||||
&& rm -rf {{ nvm_home }}/.cache \
|
||||
&& rm -rf {{ nvm_home }}/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/share \
|
||||
&& rm -rf {{ nvm_home }}/versions/node/$(su -c '. /opt/nvm/nvm.sh; node --version' devilbox)/include \
|
||||
7.0:
|
||||
type: custom
|
||||
pre: |
|
||||
NODE_VERSION="17" \
|
||||
5.6:
|
||||
type: custom
|
||||
pre: |
|
||||
NODE_VERSION="17" \
|
||||
5.5:
|
||||
type: custom
|
||||
pre: |
|
||||
NODE_VERSION="17" \
|
||||
5.4:
|
||||
type: custom
|
||||
pre: |
|
||||
NODE_VERSION="17" \
|
||||
5.3:
|
||||
type: custom
|
||||
pre: |
|
||||
NODE_VERSION="17" \
|
||||
5.2:
|
||||
type: custom
|
||||
pre: |
|
||||
NODE_VERSION="17" \
|
||||
|
||||
###
|
||||
### Python pip
|
||||
###
|
||||
pip:
|
||||
check: pip --version
|
||||
all:
|
||||
type: custom
|
||||
command: |
|
||||
curl -sS -L --fail https://bootstrap.pypa.io/get-pip.py | python3 \
|
||||
# Cleanup
|
||||
post: |
|
||||
/bin/ls -1 /usr/local/lib/ | grep ^python | while read -r version; do \
|
||||
cd "/usr/local/lib/${version}/" \
|
||||
&& find . -name '*.pyc' -print0 | xargs -0 -n1 rm -rf \
|
||||
&& find . -name '*.exe' -print0 | xargs -0 -n1 rm -rf \
|
||||
&& find . -name '__pycache__' -print0 | xargs -0 -n1 rm -rf \
|
||||
\
|
||||
&& if [ -d "dist-packages" ]; then \
|
||||
cd "dist-packages" \
|
||||
&& pwd \
|
||||
&& if /bin/ls -1 | grep -v '^pip'; then \
|
||||
/bin/ls -1 | grep -v '^pip' | xargs -n1 rm -rf; \
|
||||
fi \
|
||||
fi \
|
||||
done \
|
||||
run_dep: [python3-distutils]
|
||||
build_dep: [libpython3-dev]
|
||||
7.2:
|
||||
type: custom
|
||||
command: |
|
||||
curl -sS -L --fail https://bootstrap.pypa.io/pip/2.7/get-pip.py | python \
|
||||
run_dep: []
|
||||
build_dep: [libpython-dev]
|
||||
7.1:
|
||||
type: custom
|
||||
command: |
|
||||
curl -sS -L --fail https://bootstrap.pypa.io/pip/2.7/get-pip.py | python \
|
||||
run_dep: []
|
||||
build_dep: [libpython-dev]
|
||||
7.0:
|
||||
type: custom
|
||||
command: |
|
||||
curl -sS -L --fail https://bootstrap.pypa.io/pip/2.7/get-pip.py | python \
|
||||
run_dep: []
|
||||
build_dep: [libpython-dev]
|
||||
5.6:
|
||||
type: custom
|
||||
command: |
|
||||
curl -sS -L --fail https://bootstrap.pypa.io/pip/2.7/get-pip.py | python \
|
||||
run_dep: []
|
||||
build_dep: [libpython-dev]
|
||||
5.5:
|
||||
type: custom
|
||||
command: |
|
||||
curl -sS -L --fail https://bootstrap.pypa.io/pip/2.7/get-pip.py | python \
|
||||
run_dep: []
|
||||
build_dep: [libpython-dev]
|
||||
5.4:
|
||||
type: custom
|
||||
command: |
|
||||
curl -sS -L --fail https://bootstrap.pypa.io/pip/2.7/get-pip.py | python \
|
||||
run_dep: []
|
||||
build_dep: [libpython-dev]
|
||||
5.3:
|
||||
type: custom
|
||||
run_dep: []
|
||||
build_dep: [libpython-dev]
|
||||
command: |
|
||||
curl -sS -L --fail https://bootstrap.pypa.io/pip/2.7/get-pip.py | python \
|
||||
5.2:
|
||||
type: custom
|
||||
command: |
|
||||
curl -sS -L --fail https://bootstrap.pypa.io/pip/2.7/get-pip.py | python \
|
||||
run_dep: []
|
||||
build_dep: [libpython-dev]
|
||||
File diff suppressed because it is too large
Load Diff
273
.ansible/jinja2/macros-work.j2
Normal file
273
.ansible/jinja2/macros-work.j2
Normal file
@@ -0,0 +1,273 @@
|
||||
{##################################################################################################
|
||||
# IMPORTS
|
||||
##################################################################################################}
|
||||
{% import './jinja2/macros.j2' as fn %}
|
||||
|
||||
|
||||
|
||||
{##################################################################################################
|
||||
# GENERIC MACROS
|
||||
##################################################################################################}
|
||||
|
||||
{#-
|
||||
###
|
||||
### Check if not disabled
|
||||
###
|
||||
### Returns 'true' string if not disabled, otherwise returns nothing
|
||||
###
|
||||
-#}
|
||||
{%- macro is_not_disabled(php, name, items) -%}
|
||||
{%- if ('disabled' not in items[name]) or (php not in items[name]['disabled']) -%}
|
||||
{{- 'true' -}}
|
||||
{%- endif -%}
|
||||
{%- endmacro -%}
|
||||
|
||||
{#-
|
||||
###
|
||||
### Get 'type'
|
||||
###
|
||||
### Returns type string
|
||||
###
|
||||
-#}
|
||||
{%- macro get_type(php, name, items) -%}
|
||||
{{- fn.get_val(php, name, items, 'type', '<WRONG TYPE>') -}}
|
||||
{%- endmacro -%}
|
||||
|
||||
{#-
|
||||
###
|
||||
### Get 'pre'
|
||||
###
|
||||
### Returns pre string
|
||||
###
|
||||
-#}
|
||||
{%- macro get_pre(php, name, items) -%}
|
||||
{{- fn.get_val(php, name, items, 'pre', '') -}}
|
||||
{%- endmacro -%}
|
||||
|
||||
{#-
|
||||
###
|
||||
### Get 'post'
|
||||
###
|
||||
### Returns post string
|
||||
###
|
||||
-#}
|
||||
{%- macro get_post(php, name, items) -%}
|
||||
{{- fn.get_val(php, name, items, 'post', '') -}}
|
||||
{%- endmacro -%}
|
||||
|
||||
{#-
|
||||
###
|
||||
### Get 'build_dep'
|
||||
###
|
||||
### Returns json string (jsonified list) of build_dep (use '| to_json' to eval)
|
||||
###
|
||||
-#}
|
||||
{%- macro get_build_dep(php, name, items) -%}
|
||||
{{- fn.get_list_if_enabled(php, name, items, 'build_dep') -}}
|
||||
{%- endmacro -%}
|
||||
|
||||
{#-
|
||||
###
|
||||
### Get 'run_dep'
|
||||
###
|
||||
### Returns json string (jsonified list) of run_dep (use '| to_json' to eval)
|
||||
###
|
||||
-#}
|
||||
{%- macro get_run_dep(php, name, items) -%}
|
||||
{{- fn.get_list_if_enabled(php, name, items, 'run_dep') -}}
|
||||
{%- endmacro -%}
|
||||
|
||||
|
||||
|
||||
{##################################################################################################
|
||||
# TOOLS SPECIFIC MACROS
|
||||
##################################################################################################}
|
||||
|
||||
{# --------------------------------------------- REPO ----------------------------------------- -#}
|
||||
{#-
|
||||
###
|
||||
### Get 'deb'
|
||||
### type: repo
|
||||
###
|
||||
-#}
|
||||
{%- macro tool_repo_get_deb(php, name, items) -%}
|
||||
{{- fn.get_val_by_type(php, name, items, 'deb', 'repo', '') -}}
|
||||
{%- endmacro -%}
|
||||
|
||||
{#-
|
||||
###
|
||||
### Get 'key'
|
||||
### type: repo
|
||||
###
|
||||
-#}
|
||||
{%- macro tool_repo_get_key(php, name, items) -%}
|
||||
{{- fn.get_val_by_type(php, name, items, 'key', 'repo', '') -}}
|
||||
{%- endmacro -%}
|
||||
|
||||
|
||||
{# --------------------------------------------- CUSTOM --------------------------------------- -#}
|
||||
{#-
|
||||
###
|
||||
### Get 'command'
|
||||
### type: custom
|
||||
###
|
||||
-#}
|
||||
{%- macro tool_custom_get_command(php, name, items) -%}
|
||||
{{- fn.get_val_by_type(php, name, items, 'command', 'custom', '') -}}
|
||||
{%- endmacro -%}
|
||||
|
||||
|
||||
{# --------------------------------------------- NPM ------------------------------------------ -#}
|
||||
{#-
|
||||
###
|
||||
### Get 'package'
|
||||
### type: npm
|
||||
###
|
||||
-#}
|
||||
{%- macro tool_npm_get_package(php, name, items) -%}
|
||||
{{- fn.get_val_by_type(php, name, items, 'package', 'npm', name) -}}
|
||||
{%- endmacro -%}
|
||||
|
||||
{#-
|
||||
###
|
||||
### Get 'version'
|
||||
### type: npm
|
||||
###
|
||||
-#}
|
||||
{%- macro tool_npm_get_version(php, name, items) -%}
|
||||
{%- set version = fn.get_val_by_type(php, name, items, 'version', 'npm', '') -%}
|
||||
{%- if version | length -%}
|
||||
{{- '@' ~ version -}}
|
||||
{%- else -%}
|
||||
{{- '' -}}
|
||||
{%- endif -%}
|
||||
{%- endmacro -%}
|
||||
|
||||
{#-
|
||||
###
|
||||
### Get 'binary'
|
||||
### type: npm
|
||||
###
|
||||
-#}
|
||||
{%- macro tool_npm_get_binary(php, name, items) -%}
|
||||
{{- fn.get_val_by_type(php, name, items, 'binary', 'npm', '') -}}
|
||||
{%- endmacro -%}
|
||||
|
||||
|
||||
{# --------------------------------------------- COMPOSER ------------------------------------- -#}
|
||||
|
||||
{#-
|
||||
###
|
||||
### Get 'composer'
|
||||
### type: composer
|
||||
###
|
||||
-#}
|
||||
{%- macro tool_composer_get_composer(php, name, items) -%}
|
||||
{{- fn.get_val_by_type(php, name, items, 'composer', 'composer', '') -}}
|
||||
{%- endmacro -%}
|
||||
|
||||
{#-
|
||||
###
|
||||
### Get 'package'
|
||||
### type: composer
|
||||
###
|
||||
-#}
|
||||
{%- macro tool_composer_get_package(php, name, items) -%}
|
||||
{{- fn.get_val_by_type(php, name, items, 'package', 'composer', '') -}}
|
||||
{%- endmacro -%}
|
||||
|
||||
{#-
|
||||
###
|
||||
### Get 'version'
|
||||
### type: composer
|
||||
###
|
||||
-#}
|
||||
{%- macro tool_composer_get_version(php, name, items) -%}
|
||||
{%- set version = fn.get_val_by_type(php, name, items, 'version', 'composer', '') -%}
|
||||
{%- if version | length -%}
|
||||
{{- ':' ~ version -}}
|
||||
{%- else -%}
|
||||
{{- '' -}}
|
||||
{%- endif -%}
|
||||
{%- endmacro -%}
|
||||
|
||||
{#-
|
||||
###
|
||||
### Get 'binary'
|
||||
### type: composer
|
||||
###
|
||||
-#}
|
||||
{%- macro tool_composer_get_binary(php, name, items) -%}
|
||||
{{- fn.get_val_by_type(php, name, items, 'binary', 'composer', '') -}}
|
||||
{%- endmacro -%}
|
||||
|
||||
|
||||
{# --------------------------------------------- RUBYGEM -------------------------------------- -#}
|
||||
|
||||
{#-
|
||||
###
|
||||
### Get 'package'
|
||||
### type: rubygem
|
||||
###
|
||||
-#}
|
||||
{%- macro tool_rubygem_get_package(php, name, items) -%}
|
||||
{{- fn.get_val_by_type(php, name, items, 'package', 'rubygem', '') -}}
|
||||
{%- endmacro -%}
|
||||
|
||||
{#-
|
||||
###
|
||||
### Get 'version'
|
||||
### type: rubygem
|
||||
###
|
||||
-#}
|
||||
{%- macro tool_rubygem_get_version(php, name, items) -%}
|
||||
{%- set version = fn.get_val_by_type(php, name, items, 'version', 'rubygem', '') -%}
|
||||
{%- if version | length -%}
|
||||
{{- ' -v ' ~ version -}}
|
||||
{%- else -%}
|
||||
{{- '' -}}
|
||||
{%- endif -%}
|
||||
{%- endmacro -%}
|
||||
|
||||
|
||||
{# --------------------------------------------- PIP ------------------------------------------ -#}
|
||||
|
||||
{#-
|
||||
###
|
||||
### Get 'package'
|
||||
### type: pip
|
||||
###
|
||||
-#}
|
||||
{%- macro tool_pip_get_package(php, name, items) -%}
|
||||
{{- fn.get_val_by_type(php, name, items, 'package', 'pip', name) -}}
|
||||
{%- endmacro -%}
|
||||
|
||||
{#-
|
||||
###
|
||||
### Get 'version'
|
||||
### type: pip
|
||||
###
|
||||
-#}
|
||||
{%- macro tool_pip_get_version(php, name, items) -%}
|
||||
{%- set version = fn.get_val_by_type(php, name, items, 'version', 'pip', '') -%}
|
||||
{%- if version | length -%}
|
||||
{{- '==' ~ version -}}
|
||||
{%- else -%}
|
||||
{{- '' -}}
|
||||
{%- endif -%}
|
||||
{%- endmacro -%}
|
||||
|
||||
|
||||
{# --------------------------------------------- APT ------------------------------------------ -#}
|
||||
|
||||
{#-
|
||||
###
|
||||
### Get 'package'
|
||||
### type: apt
|
||||
###
|
||||
-#}
|
||||
{%- macro tool_apt_get_package(php, name, items) -%}
|
||||
{%- if is_not_disabled(php, name, items) -%}
|
||||
{{- fn.get_val_by_type(php, name, items, 'package', 'apt', '') -}}
|
||||
{%- endif -%}
|
||||
{%- endmacro -%}
|
||||
90
.ansible/jinja2/macros.j2
Normal file
90
.ansible/jinja2/macros.j2
Normal file
@@ -0,0 +1,90 @@
|
||||
{##################################################################################################
|
||||
# HELPER MACROS
|
||||
##################################################################################################}
|
||||
|
||||
{#
|
||||
### Get generic string value of key if type value matches.
|
||||
###
|
||||
### php: The PHP Version
|
||||
### name: The item name
|
||||
### items: The items_available list
|
||||
### key: The key to retrieve the value for
|
||||
### type: The type key must match this type string
|
||||
### default: Default value to return if none was found
|
||||
#}
|
||||
{%- macro get_val_by_type(php, name, items, key, type, default='' ) -%}
|
||||
{#- Default return value -#}
|
||||
{%- set result = default -%}
|
||||
|
||||
{#- PHP Version specific -#}
|
||||
{%- if php in items[name] and items[name][php]['type'] == type -%}
|
||||
{%- if key in items[name][php] and items[name][php][key] -%}
|
||||
{%- set result = items[name][php][key] -%}
|
||||
{%- elif key in items[name]['all'] and items[name]['all'][key] -%}
|
||||
{%- set result = items[name]['all'][key] -%}
|
||||
{%- endif -%}
|
||||
{#- Defined in 'all' -#}
|
||||
{%- elif 'all' in items[name] and items[name]['all']['type'] == type -%}
|
||||
{%- if key in items[name]['all'] and items[name]['all'][key] -%}
|
||||
{%- set result = items[name]['all'][key] -%}
|
||||
{%- endif -%}
|
||||
{%- endif -%}
|
||||
|
||||
{{- result -}}
|
||||
{%- endmacro -%}
|
||||
|
||||
{#-
|
||||
### Get generic string value of key.
|
||||
###
|
||||
### php: The PHP Version
|
||||
### name: The item name
|
||||
### items: The items_available list
|
||||
### key: The key to retrieve the value for
|
||||
### default: Default value to return if none was found
|
||||
-#}
|
||||
{%- macro get_val(php, name, items, key, default='') -%}
|
||||
{%- if php in items[name] and key in items[name][php] and items[name][php][key] -%}
|
||||
{{- items[name][php][key] -}}
|
||||
{%- elif 'all' in items[name] and key in items[name]['all'] and items[name]['all'][key] -%}
|
||||
{{- items[name]['all'][key] -}}
|
||||
{%- else -%}
|
||||
{{- default -}}
|
||||
{%- endif -%}
|
||||
{%- endmacro -%}
|
||||
|
||||
{#-
|
||||
### Get generic list value (space separated) of not disabled PHP versions.
|
||||
###
|
||||
### Returns jsonified string of a list.
|
||||
###
|
||||
### Usage:
|
||||
### {%- set list = [] -%}
|
||||
### {%- for val in get_enabled_list(php_version, item, items_available) | from_json -%}
|
||||
### {%- if val -%}
|
||||
### {{- list.append(val) -}}
|
||||
### {%- endif -%}
|
||||
### {%- endfor -%}
|
||||
###
|
||||
### php: The PHP Version
|
||||
### name: The item name
|
||||
### items: The items_available list
|
||||
### key: The key to retrieve the value for
|
||||
-#}
|
||||
{%- macro get_list_if_enabled(php, name, items, key) -%}
|
||||
{%- set list = [] %}
|
||||
{# Not disabled #}
|
||||
{%- if ('disabled' not in items[name]) or (php not in items[name]['disabled']) -%}
|
||||
{#- Version specific build dependency available? -#}
|
||||
{%- if php in items[name] and key in items[name][php] -%}
|
||||
{%- for val in items[name][php][key] -%}
|
||||
{{- list.append(val) -}}
|
||||
{%- endfor -%}
|
||||
{#- Generic build dependency available? -#}
|
||||
{%- elif 'all' in items[name] and key in items[name]['all'] -%}
|
||||
{%- for val in items[name]['all'][key] -%}
|
||||
{{- list.append(val) -}}
|
||||
{%- endfor -%}
|
||||
{%- endif -%}
|
||||
{%- endif -%}
|
||||
{{- list | to_json -}}
|
||||
{%- endmacro -%}
|
||||
Reference in New Issue
Block a user