From 5594d587321ead975ed1493a94af22e2ad43e04e Mon Sep 17 00:00:00 2001 From: Yann Autissier Date: Sun, 9 Jan 2022 17:32:54 +0100 Subject: [PATCH] add support of runit service manager --- ansible/ansible.cfg | 3 +- ansible/ansible.mk | 2 +- ansible/def.ansible.mk | 2 +- ansible/inventories/host_vars/localhost | 1 - ansible/roles/disks/tasks/filesystems.yml | 2 +- ...ystems-btrfs.yml => filesystems_btrfs.yml} | 0 ansible/roles/disks/tasks/services.yml | 13 ++++- ansible/roles/docker/README.md | 22 +++++++- .../docker/files/usr/local/bin/docker-build | 6 +-- .../docker/files/usr/local/bin/docker-run | 2 +- ansible/roles/docker/meta/main.yml | 38 ++++++++++++- ansible/roles/docker/tasks/packages.yml | 17 ++---- .../roles/docker/tasks/packages_debian.yml | 53 +++++++++++++++++++ ansible/roles/docker/tasks/services.yml | 17 ++++-- ansible/roles/hosts/tasks/cloudinit.yml | 4 +- ansible/roles/hosts/tasks/config.yml | 16 ++++-- ansible/roles/hosts/tasks/files.yml | 4 +- ansible/roles/hosts/tasks/services.yml | 13 ++++- ansible/roles/hosts/tasks/user.yml | 2 +- ansible/roles/hosts/vars/debian.yml | 2 +- ansible/roles/remotes/tasks/services.yml | 13 ++++- make/apps/common.mk | 2 +- make/apps/def.docker.mk | 1 + make/debug.mk | 2 +- make/def.docker.mk | 3 +- make/def.mk | 1 - 26 files changed, 190 insertions(+), 51 deletions(-) rename ansible/roles/disks/tasks/{filesystems-btrfs.yml => filesystems_btrfs.yml} (100%) create mode 100644 ansible/roles/docker/tasks/packages_debian.yml diff --git a/ansible/ansible.cfg b/ansible/ansible.cfg index c8818d2..a66937e 100644 --- a/ansible/ansible.cfg +++ b/ansible/ansible.cfg @@ -2,11 +2,10 @@ inventory = inventories roles_path = roles filter_plugins = plugins/filter -host_key_checking = False +# host_key_checking = False [ssh_connection] scp_if_ssh = smart -pipelining =True [colors] changed = purple diff --git a/ansible/ansible.mk b/ansible/ansible.mk index d8a2987..4420183 100644 --- a/ansible/ansible.mk +++ b/ansible/ansible.mk @@ -24,7 +24,7 @@ ansible-run: ansible-run-localhost # target ansible-run-%: Fire docker-build-ansible, Call ansible-playbook ANSIBLE_PLAYBOOK .PHONY: ansible-run-% -ansible-run-%: $(if $(DOCKER_RUN),docker-build-ansible,install-ansible) debug-ANSIBLE_PLAYBOOK +ansible-run-%: $(if $(DOCKER_RUN),docker-build-ansible,install-ansible) $(call ansible-playbook,$(if $(ANSIBLE_TAGS),--tags $(ANSIBLE_TAGS)) $(if $(ANSIBLE_EXTRA_VARS),--extra-vars '$(patsubst target=localhost,target=$*,$(ANSIBLE_EXTRA_VARS))') $(if $(findstring true,$(DRYRUN)),--check) $(if $(ANSIBLE_INVENTORY),--inventory $(ANSIBLE_INVENTORY)) $(ANSIBLE_PLAYBOOK)) # target ansible-tests: Fire ssh-add ansible-tests-localhost diff --git a/ansible/def.ansible.mk b/ansible/def.ansible.mk index bb74485..0f7699d 100644 --- a/ansible/def.ansible.mk +++ b/ansible/def.ansible.mk @@ -1,4 +1,4 @@ -ANSIBLE_ARGS ?= $(if $(filter-out 0,$(UID)),$(if $(shell sudo -l 2>/dev/null |grep 'NOPASSWD: ALL'),,-K))$(if $(DOCKER_RUN),$(if $(shell ssh-add -l >/dev/null 2>&1 || echo false), -k)) +ANSIBLE_ARGS ?= $(if $(filter-out 0,$(UID)),$(if $(shell sudo -l 2>/dev/null |grep 'NOPASSWD: ALL'),,--ask-become-pass))$(if $(DOCKER_RUN),$(if $(shell ssh-add -l >/dev/null 2>&1 || echo false), --ask-pass)) ANSIBLE_AWS_ACCESS_KEY_ID ?= $(AWS_ACCESS_KEY_ID) ANSIBLE_AWS_DEFAULT_OUTPUT ?= $(AWS_DEFAULT_OUTPUT) ANSIBLE_AWS_DEFAULT_REGION ?= $(AWS_DEFAULT_REGION) diff --git a/ansible/inventories/host_vars/localhost b/ansible/inventories/host_vars/localhost index 1e71f69..6b64cfb 100644 --- a/ansible/inventories/host_vars/localhost +++ b/ansible/inventories/host_vars/localhost @@ -10,7 +10,6 @@ hosts_git_repositories: - { "repo": "{{ lookup('env','ANSIBLE_GIT_REPOSITORY') }}", "dest": "{{ lookup('env','ANSIBLE_GIT_DIRECTORY') }}", "key_file": "{{ lookup('env','ANSIBLE_GIT_KEY_FILE') or '~/.ssh/id_rsa' }}", "version": "{{ lookup('env','ANSIBLE_GIT_VERSION') }}" } hosts_services: - { "name": "myos", "state": "stopped", "enabled": "yes" } -- { "name": "zram", "state": "started", "enabled": "yes" } hosts_user_env: - ANSIBLE_CONFIG - ANSIBLE_DOCKER_IMAGE_TAG diff --git a/ansible/roles/disks/tasks/filesystems.yml b/ansible/roles/disks/tasks/filesystems.yml index a8ecd35..93f1238 100644 --- a/ansible/roles/disks/tasks/filesystems.yml +++ b/ansible/roles/disks/tasks/filesystems.yml @@ -25,7 +25,7 @@ - name: filesystems - btrfs when: "disks_to_mount and ansible_cmdline.fstype == 'btrfs'" - import_tasks: filesystems-btrfs.yml + import_tasks: filesystems_btrfs.yml tags: - btrfs diff --git a/ansible/roles/disks/tasks/filesystems-btrfs.yml b/ansible/roles/disks/tasks/filesystems_btrfs.yml similarity index 100% rename from ansible/roles/disks/tasks/filesystems-btrfs.yml rename to ansible/roles/disks/tasks/filesystems_btrfs.yml diff --git a/ansible/roles/disks/tasks/services.yml b/ansible/roles/disks/tasks/services.yml index ab607f3..85908be 100644 --- a/ansible/roles/disks/tasks/services.yml +++ b/ansible/roles/disks/tasks/services.yml @@ -2,7 +2,7 @@ # file: tasks/services.yml - name: services - enable/disable disks services - when: disks_services is defined and ansible_service_mgr|lower != "openrc" + when: disks_services is defined and ansible_service_mgr|lower != "openrc" and ansible_service_mgr|lower != "runit" with_items: "{{ disks_services|default([]) }}" service: name: "{{item.name}}" @@ -10,7 +10,7 @@ enabled: "{{item.enabled}}" become: yes -- name: services - openrc - enable/disable disks services +- name: services - enable/disable disks services - openrc when: disks_services is defined and ansible_service_mgr|lower == "openrc" with_items: "{{ disks_services|default([]) }}" service: @@ -20,3 +20,12 @@ runlevel: boot become: yes +- name: services - enable/disable disks services - runit + when: disks_services is defined and ansible_service_mgr|lower == "runit" + with_items: "{{ disks_services|default([]) }}" + sysvinit: + name: "{{item.name}}" + state: "{{item.state}}" + enabled: "{{item.enabled}}" + become: yes + diff --git a/ansible/roles/docker/README.md b/ansible/roles/docker/README.md index 579404d..b44dad6 100644 --- a/ansible/roles/docker/README.md +++ b/ansible/roles/docker/README.md @@ -36,6 +36,24 @@ docker_daemon_config_storage: 'overlay2' docker_daemon_config: { "storage-driver": "devicemapper" } ``` +* `docker_distribution` - Docker package distribution + +``` yaml +docker_distribution: debian +``` + +* `docker_distribution_release` - Docker package distribution release + +``` yaml +docker_distribution_release: bullseye +``` + +* `docker_machine` - Docker package architecture + +``` yaml +docker_machine: amd64 +``` + * `docker_package` - Name of the docker package ``` yaml @@ -199,7 +217,7 @@ Both DOCKER_BUILD_PREFIX and DOCKER_BUILD_SUFFIX variables are empty, the Docker The DOCKER_BUILD_PREFIX variable is populated with 'custom/' to force the Dockerfile to search for a `./custom/nginx.conf` file, ie /etc/docker/nginx/custom/nginx.conf file. -* Whith an image name suffixed with a dash, the docker-build command will search for a suffixed file as well. +* With an image name suffixed with a dash, the docker-build command will search for a suffixed file as well. ``` bash # docker-build -c custom nginx-develop && docker-run -c custom nginx-develop @@ -241,4 +259,4 @@ docker: ## Limitations -This role is known to work on Ubuntu, Debian, CentOS and Alpine Linux. +This role is known to work on Alpine Linux, Armbian, Centos, Debian, Devuan, Fedora, Raspbian, RedHat and Ubuntu. diff --git a/ansible/roles/docker/files/usr/local/bin/docker-build b/ansible/roles/docker/files/usr/local/bin/docker-build index 7c8ac79..ccf4394 100755 --- a/ansible/roles/docker/files/usr/local/bin/docker-build +++ b/ansible/roles/docker/files/usr/local/bin/docker-build @@ -1,7 +1,7 @@ #!/bin/bash # Author: Yann Autissier -DOCKER_IMAGE_REPOSITORY="centile" +DOCKER_IMAGE_REPOSITORY="local" DOCKER_BUILD_DIRECTORY="/etc/docker" usage() { @@ -30,9 +30,9 @@ usage() { echo -e "Build a docker image named '${DOCKER_IMAGE_REPOSITORY}/elk-es01' with Dockerfile ${DOCKER_BUILD_DIRECTORY}/elk/Dockerfile" echo -e "and build-arg DOCKER_BUILD_SUFFIX=-es01" echo - echo -e "$0 -c elisa-sdc elk-es01" + echo -e "$0 -c custom elk-es01" echo -e "Build a docker image named '${DOCKER_IMAGE_REPOSITORY}/elk-es01' with Dockerfile ${DOCKER_BUILD_DIRECTORY}/elk/Dockerfile," - echo -e "build-arg DOCKER_BUILD_PREFIX=elisa-sdc/ and build-arg DOCKER_BUILD_SUFFIX=-es01" + echo -e "build-arg DOCKER_BUILD_PREFIX=custom/ and build-arg DOCKER_BUILD_SUFFIX=-es01" echo exit 1 } diff --git a/ansible/roles/docker/files/usr/local/bin/docker-run b/ansible/roles/docker/files/usr/local/bin/docker-run index d49856b..75fcaf0 100755 --- a/ansible/roles/docker/files/usr/local/bin/docker-run +++ b/ansible/roles/docker/files/usr/local/bin/docker-run @@ -1,7 +1,7 @@ #!/bin/bash # Author: Yann Autissier -DOCKER_IMAGE_REPOSITORY="centile" +DOCKER_IMAGE_REPOSITORY="local" DOCKER_BUILD_DIRECTORY="/etc/docker" usage() { diff --git a/ansible/roles/docker/meta/main.yml b/ansible/roles/docker/meta/main.yml index 324f9a4..3a6ed63 100644 --- a/ansible/roles/docker/meta/main.yml +++ b/ansible/roles/docker/meta/main.yml @@ -12,16 +12,50 @@ galaxy_info: - name: Alpine versions: - all - - name: Debian + - name: Centos versions: - all + - name: Debian + versions: + - bookworm + - bullseye + - buster + - stretch + - jessie + - wheezy + - name: Devuan + versions: + - daedalus + - chimaera + - beowulf + - ascii + - jessie - name: EL versions: - all - name: Fedora versions: - all + - name: Raspbian + versions: + - bookworm + - bullseye + - buster + - stretch + - jessie - name: Ubuntu versions: - - all + - impish + - hirsute + - groovy + - focal + - eoan + - disco + - cosmic + - bionic + - artful + - zesty + - yakkety + - xenial + - trusty diff --git a/ansible/roles/docker/tasks/packages.yml b/ansible/roles/docker/tasks/packages.yml index cf69341..6d825a1 100644 --- a/ansible/roles/docker/tasks/packages.yml +++ b/ansible/roles/docker/tasks/packages.yml @@ -7,21 +7,10 @@ package: name="{{item.name}}" state="{{item.state}}" become: yes -- name: packages - add docker GPG key +- import_tasks: packages_debian.yml when: ansible_os_family|lower == "debian" - apt_key: url=https://download.docker.com/linux/debian/gpg - ignore_errors: true - become: yes - -- name: packages - define arch - set_fact: - docker_apt_arch: "{% if ansible_machine == 'aarch64' %}arm64{% endif %}{% if ansible_machine == 'x86_64' %}amd64{% endif %}" - -- name: packages - add docker APT repository - when: ansible_os_family|lower == "debian" - apt_repository: - repo: deb [arch={{docker_apt_arch}}] https://download.docker.com/linux/{{ansible_distribution|lower}} {{ansible_distribution_release}} stable - become: yes + tags: + - debian - name: packages - add docker package when: docker_package|length > 0 diff --git a/ansible/roles/docker/tasks/packages_debian.yml b/ansible/roles/docker/tasks/packages_debian.yml new file mode 100644 index 0000000..10bf581 --- /dev/null +++ b/ansible/roles/docker/tasks/packages_debian.yml @@ -0,0 +1,53 @@ +--- +# file: tasks/packages_debian.yml + +- name: packages - add docker GPG key + apt_key: url=https://download.docker.com/linux/debian/gpg + ignore_errors: true + become: yes + +- name: packages - define docker_machine + set_fact: + docker_machine: "{% if ansible_machine == 'aarch64' %}arm64{% endif %}{% if ansible_machine == 'x86_64' %}amd64{% endif %}" + when: docker_machine is undefined + +- name: packages - define docker_distribution + set_fact: + docker_distribution: "{% if ansible_distribution|lower == 'devuan' %}debian{% else %}{{ansible_distribution|lower}}{% endif %}" + when: docker_distribution is undefined + +- name: packages - define docker_distribution_release - debian bookworm (not yet available) + set_fact: + docker_distribution_release: "bullseye" + when: docker_distribution_release is undefined and ansible_distribution_release|lower == 'bookworm' + +- name: packages - define docker_distribution_release - devuan daealus + set_fact: + docker_distribution_release: "bullseye" + when: docker_distribution_release is undefined and ansible_distribution_release|lower == 'daedalus/ceres' + +- name: packages - define docker_distribution_release - devuan chimaera + set_fact: + docker_distribution_release: "bullseye" + when: docker_distribution_release is undefined and ansible_distribution_release|lower == 'chimaera' + +- name: packages - define docker_distribution_release - devuan beowulf + set_fact: + docker_distribution_release: "buster" + when: docker_distribution_release is undefined and ansible_distribution_release|lower == 'beowulf' + +- name: packages - define docker_distribution_release - devuan ascii + set_fact: + docker_distribution_release: "stretch" + when: docker_distribution_release is undefined and ansible_distribution_release|lower == 'ascii' + +- name: packages - define docker_distribution_release + set_fact: + docker_distribution_release: "{{ansible_distribution_release|lower}}" + when: docker_distribution_release is undefined + +- name: packages - add docker APT repository + apt_repository: + repo: deb [arch={{docker_machine}}] https://download.docker.com/linux/{{docker_distribution}} {{docker_distribution_release}} stable + become: yes + diff --git a/ansible/roles/docker/tasks/services.yml b/ansible/roles/docker/tasks/services.yml index 099f2a7..194724a 100644 --- a/ansible/roles/docker/tasks/services.yml +++ b/ansible/roles/docker/tasks/services.yml @@ -2,7 +2,7 @@ # file: tasks/services.yml - name: services - enable/disable docker services - when: docker_services is defined and ansible_service_mgr|lower != "openrc" + when: docker_services is defined and ansible_service_mgr|lower != "openrc" and ansible_service_mgr|lower != "runit" with_items: "{{ docker_services|default([]) }}" service: name: "{{item.name}}" @@ -10,13 +10,13 @@ enabled: "{{item.enabled}}" become: yes -- name: services - openrc - force service status +- name: services - force service status - openrc when: docker_services is defined and ansible_service_mgr|lower == "openrc" shell: "kill -0 $(cat /run/{{item.name}}.pid) && [ ! -h /run/openrc/started/{{item.name}} ] && ln -s /etc/init.d/{{item.name}} /run/openrc/started/{{item.name}} && service {{item.name}} restart ||:" with_items: "{{ docker_services|default([]) }}" become: yes -- name: services - openrc - enable/disable docker services +- name: services - enable/disable docker services - openrc when: docker_services is defined and ansible_service_mgr|lower == "openrc" with_items: "{{ docker_services|default([]) }}" service: @@ -26,7 +26,16 @@ runlevel: boot become: yes -- name: services - openrc - force service restart +- name: services - enable/disable docker services - runit + when: docker_services is defined and ansible_service_mgr|lower == "runit" + with_items: "{{ docker_services|default([]) }}" + sysvinit: + name: "{{item.name}}" + state: "{{item.state}}" + enabled: "{{item.enabled}}" + become: yes + +- name: services - force service restart - openrc when: ansible_service_mgr|lower == "openrc" shell: "[ ! -d /var/lib/docker/tmp ] && service docker restart ||:" become: yes diff --git a/ansible/roles/hosts/tasks/cloudinit.yml b/ansible/roles/hosts/tasks/cloudinit.yml index 9149a2d..3c79dcd 100644 --- a/ansible/roles/hosts/tasks/cloudinit.yml +++ b/ansible/roles/hosts/tasks/cloudinit.yml @@ -6,7 +6,7 @@ package: name="cloud-init" state="present" become: yes -- name: cloudinit - alpine - install cloud-init packages +- name: cloudinit - install cloud-init packages - alpine when: hosts_cloudinit_enable|default(false) and ansible_os_family|lower == "alpine" with_items: - { "name": "cloud-init", "state": "present" } @@ -37,7 +37,7 @@ enabled: yes become: yes -- name: cloudinit - activate service (openrc) +- name: cloudinit - activate service - openrc when: hosts_cloudinit_enable|default(false) and ansible_service_mgr|lower == "openrc" service: name: cloud-init diff --git a/ansible/roles/hosts/tasks/config.yml b/ansible/roles/hosts/tasks/config.yml index 73e6ab6..c4a0c6b 100644 --- a/ansible/roles/hosts/tasks/config.yml +++ b/ansible/roles/hosts/tasks/config.yml @@ -1,14 +1,24 @@ --- # file: tasks/config.yml -- name: config - arch != x86 - do not run docker-compose in docker +- name: config - do not run docker-compose in docker - arch != x86 when: ansible_machine|lower != "x86_64" - lineinfile: dest="/etc/default/myos" state="present" line="DOCKER=false" + with_items: + - DOCKER=false + lineinfile: + path: /etc/default/myos + create: yes + line: '{{ item }}' + mode: '0644' become: yes - name: config - set MYOS config in /etc/default/myos with_items: - MYOS={{ lookup('env','ANSIBLE_MYOS') }} - lineinfile: dest="/etc/default/myos" create="yes" line="{{ item }}" mode="0644" + lineinfile: + path: /etc/default/myos + create: yes + line: '{{ item }}' + mode: '0644' become: yes diff --git a/ansible/roles/hosts/tasks/files.yml b/ansible/roles/hosts/tasks/files.yml index d6a2ad7..53481e3 100644 --- a/ansible/roles/hosts/tasks/files.yml +++ b/ansible/roles/hosts/tasks/files.yml @@ -23,7 +23,7 @@ copy: src=../files/{{item}} dest={{item}} owner=root group=root mode=0755 become: yes -- name: files - systemd - copy files +- name: files - copy files - systemd when: ansible_service_mgr|lower == "systemd" with_items: - /etc/systemd/system/ansible.service @@ -33,7 +33,7 @@ copy: src=../files/{{item}} dest={{item}} owner=root group=root mode=0644 become: yes -- name: files - openrc - copy files +- name: files - copy files - openrc when: ansible_service_mgr|lower == "openrc" with_items: - /etc/init.d/myos-openrc diff --git a/ansible/roles/hosts/tasks/services.yml b/ansible/roles/hosts/tasks/services.yml index 36e1abd..adf2915 100644 --- a/ansible/roles/hosts/tasks/services.yml +++ b/ansible/roles/hosts/tasks/services.yml @@ -2,7 +2,7 @@ # file: tasks/services.yml - name: services - enable/disable hosts services - when: hosts_services is defined and ansible_service_mgr|lower != "openrc" + when: hosts_services is defined and ansible_service_mgr|lower != "openrc" and ansible_service_mgr|lower != "runit" with_items: "{{ hosts_services|default([]) }}" service: name: "{{item.name}}" @@ -10,7 +10,7 @@ enabled: "{{item.enabled}}" become: yes -- name: services - openrc - enable/disable hosts services +- name: services - enable/disable hosts services - openrc when: hosts_services is defined and ansible_service_mgr|lower == "openrc" with_items: "{{ hosts_services|default([]) }}" service: @@ -20,3 +20,12 @@ runlevel: boot become: yes +- name: services - enable/disable hosts services - runit + when: hosts_services is defined and ansible_service_mgr|lower == "runit" + with_items: "{{ hosts_services|default([]) }}" + sysvinit: + name: "{{item.name}}" + state: "{{item.state}}" + enabled: "{{item.enabled}}" + become: yes + diff --git a/ansible/roles/hosts/tasks/user.yml b/ansible/roles/hosts/tasks/user.yml index d108102..1f41f31 100644 --- a/ansible/roles/hosts/tasks/user.yml +++ b/ansible/roles/hosts/tasks/user.yml @@ -70,7 +70,7 @@ - include myos/config lineinfile: dest=~/.ssh/config create=yes line='{{item}}' -- name: ssh - update ~/.ssh/myos/config +- name: user - update ~/.ssh/myos/config template: src: ssh_config.j2 dest: ~/.ssh/myos/config diff --git a/ansible/roles/hosts/vars/debian.yml b/ansible/roles/hosts/vars/debian.yml index 44c8f10..54460c6 100644 --- a/ansible/roles/hosts/vars/debian.yml +++ b/ansible/roles/hosts/vars/debian.yml @@ -6,7 +6,7 @@ hosts_packages_distro: - { "name": "groff", "state": "present" } - { "name": "openssh-client", "state": "present" } - { "name": "pass", "state": "present" } - - { "name": "python-pip", "state": "present" } + - { "name": "python3-pip", "state": "present" } - { "name": "rclone", "state": "present" } - { "name": "util-linux", "state": "present" } - { "name": "vim-nox", "state": "present" } diff --git a/ansible/roles/remotes/tasks/services.yml b/ansible/roles/remotes/tasks/services.yml index 91009c8..d1ea94a 100644 --- a/ansible/roles/remotes/tasks/services.yml +++ b/ansible/roles/remotes/tasks/services.yml @@ -2,7 +2,7 @@ # file: tasks/services.yml - name: services - enable/disable remotes services - when: remotes_services is defined and ansible_service_mgr|lower != "openrc" + when: remotes_services is defined and ansible_service_mgr|lower != "openrc" and ansible_service_mgr|lower != "runit" with_items: "{{ remotes_services|default([]) }}" service: name: "{{item.name}}" @@ -10,7 +10,7 @@ enabled: "{{item.enabled}}" become: yes -- name: services - openrc - enable/disable remotes services +- name: services - enable/disable remotes services - openrc when: remotes_services is defined and ansible_service_mgr|lower == "openrc" with_items: "{{ remotes_services|default([]) }}" service: @@ -20,3 +20,12 @@ runlevel: boot become: yes +- name: services - enable/disable remotes services - runit + when: remotes_services is defined and ansible_service_mgr|lower == "runit" + with_items: "{{ remotes_services|default([]) }}" + sysvinit: + name: "{{item.name}}" + state: "{{item.state}}" + enabled: "{{item.enabled}}" + become: yes + diff --git a/make/apps/common.mk b/make/apps/common.mk index bd2dd02..997ec37 100644 --- a/make/apps/common.mk +++ b/make/apps/common.mk @@ -8,7 +8,7 @@ bootstrap: bootstrap-git bootstrap-docker app-bootstrap ## Update application fi # target bootstrap-docker: Build and start application dockers # on local host -.PHONY: boostrap-docker +.PHONY: bootstrap-docker bootstrap-docker: install-bin-docker setup-docker-group # target bootstrap-git: Fire update-app diff --git a/make/apps/def.docker.mk b/make/apps/def.docker.mk index fcf31d5..d3c6687 100644 --- a/make/apps/def.docker.mk +++ b/make/apps/def.docker.mk @@ -12,6 +12,7 @@ endif COMPOSE_IGNORE_ORPHANS ?= false COMPOSE_PROJECT_NAME ?= $(APP_ENV)$(subst /,,$(subst -,,$(APP_PATH))) COMPOSE_SERVICE_NAME ?= $(subst _,-,$(COMPOSE_PROJECT_NAME)) +COMPOSE_VERSION ?= 1.29.2 CONTEXT += COMPOSE_FILE DOCKER_REPOSITORY CONTEXT_DEBUG += DOCKER_BUILD_TARGET DOCKER_IMAGE_TAG DOCKER_REGISTRY DOCKER_SERVICE DOCKER_SERVICES DOCKER_AUTHOR ?= $(DOCKER_AUTHOR_NAME) <$(DOCKER_AUTHOR_EMAIL)> diff --git a/make/debug.mk b/make/debug.mk index 834ed9d..99278ff 100644 --- a/make/debug.mk +++ b/make/debug.mk @@ -4,7 +4,7 @@ # target debug: Print more informations .PHONY: debug debug: - $(MAKE) doc help profile DEBUG=true + $(MAKE) help profile DEBUG=true # target debug-%: Print value of % .PHONY: debug-% diff --git a/make/def.docker.mk b/make/def.docker.mk index c1b0dcc..9f43489 100644 --- a/make/def.docker.mk +++ b/make/def.docker.mk @@ -1,6 +1,5 @@ COMPOSE_PROJECT_NAME_MYOS ?= $(USER_ENV)_myos COMPOSE_PROJECT_NAME_NODE ?= node -COMPOSE_VERSION ?= 1.29.2 DOCKER_ENV_ARGS ?= $(docker_env_args) DOCKER_EXEC_OPTIONS ?= DOCKER_GID ?= $(call gid,docker) @@ -15,6 +14,8 @@ DOCKER_NETWORK_PRIVATE ?= $(USER_ENV) DOCKER_NETWORK_PUBLIC ?= node DOCKER_REPOSITORY_MYOS ?= $(subst _,/,$(COMPOSE_PROJECT_NAME_MYOS)) DOCKER_REPOSITORY_NODE ?= $(subst _,/,$(COMPOSE_PROJECT_NAME_NODE)) +# DOCKER_RUN: if empty, run system command, else run it in a docker +DOCKER_RUN ?= # DOCKER_RUN_OPTIONS: default options of `docker run` command DOCKER_RUN_OPTIONS += --rm -it # DOCKER_RUN_VOLUME: options -v of `docker run` command to mount additionnal volumes diff --git a/make/def.mk b/make/def.mk index 793018c..c7186ae 100644 --- a/make/def.mk +++ b/make/def.mk @@ -43,7 +43,6 @@ CONTEXT ?= ENV $(shell awk 'BEGIN {FS="="}; $$1 !~ /^(\# CONTEXT_DEBUG ?= MAKEFILE_LIST DOCKER_ENV_ARGS ENV_ARGS APPS GIT_AUTHOR_EMAIL GIT_AUTHOR_NAME MAKE_DIR MAKE_SUBDIRS MAKE_CMD_ARGS MAKE_ENV_ARGS UID USER DEBUG ?= DOCKER ?= $(shell type -p docker) -DOCKER_RUN ?= $(if $(filter-out false False FALSE,$(DOCKER)),$(DOCKER)) DOMAIN ?= localhost DRONE ?= false DRYRUN ?= false