From 27c2c9e1d6147f9ff3fa5cd2955f84229148e3bf Mon Sep 17 00:00:00 2001 From: sonny Date: Tue, 8 Oct 2024 10:01:23 +0200 Subject: [PATCH] Add docker-compose override & use ansible command module --- tasks.yml | 57 +++++++++++++++++++++++++++---------- templates/docker-compose.j2 | 21 ++++++++++++++ vars/app.yml | 2 +- 3 files changed, 64 insertions(+), 16 deletions(-) create mode 100644 templates/docker-compose.j2 diff --git a/tasks.yml b/tasks.yml index e61d2bb..518cb12 100644 --- a/tasks.yml +++ b/tasks.yml @@ -23,24 +23,51 @@ version: '{{ app_ref }}' update: true -- name: copy .production.env +- name: copy templates template: - src: 'templates/env.j2' - dest: '{{ app_dir }}/.production.env' + src: '{{ item.src }}' + dest: '{{ item.dest }}' + loop: + - { src: 'templates/env.j2', dest: '{{ app_dir }}/.production.env' } + - { + src: 'templates/docker-compose.j2', + dest: '{{ app_dir }}/docker-compose.resources.yml' + } - name: stop newsreader - docker_compose: - project_src: '{{ app_dir }}' - state: absent + command: > + docker compose + --env-file .production.env + --file docker-compose.yml + --file docker-compose.production.yml + --file docker-compose.resources.yml + down + args: + chdir: '{{ app_dir }}' -# TODO: recreate static volume +# to allow next startup to generate a new volume +- name: remove static volume + command: docker volume rm newsreader_static-files + +- name: build newsreader + command: > + docker compose + --env-file .production.env + --file docker-compose.yml + --file docker-compose.production.yml + --file docker-compose.resources.yml + build + args: + chdir: '{{ app_dir }}' - name: start newsreader - docker_compose: - build: true - state: present - project_src: '{{ app_dir }}' - env_file: '{{ app_dir }}/.production.env' - files: - - docker-compose.yml - - docker-compose.production.yml + command: > + docker compose + --env-file .production.env + --file docker-compose.yml + --file docker-compose.production.yml + --file docker-compose.resources.yml + up + --detach + args: + chdir: '{{ app_dir }}' diff --git a/templates/docker-compose.j2 b/templates/docker-compose.j2 new file mode 100644 index 0000000..fbf7b3d --- /dev/null +++ b/templates/docker-compose.j2 @@ -0,0 +1,21 @@ +# {{ ansible_managed }} + +x-web-resources: &web-resources + deploy: + resources: + limits: + cpus: '2' + memory: 2GB + +services: + db: + deploy: + resources: + limits: + cpus: '4' + + celery: + <<: *web-resources + + django: + <<: *web-resources diff --git a/vars/app.yml b/vars/app.yml index b4f792a..98ec536 100644 --- a/vars/app.yml +++ b/vars/app.yml @@ -1,6 +1,6 @@ app_name: 'newsreader' app_repository: 'https://git.fudiggity.nl/sonny/newsreader' -app_ref: '0.5.0' +app_ref: '0.5.1' app_dir: '/srv/docker/newsreader' django_settings_module: 'newsreader.conf.production'