Add docker-compose override & use ansible command module

This commit is contained in:
sonny 2024-10-08 10:01:23 +02:00
parent 23e73ceb60
commit 27c2c9e1d6
3 changed files with 64 additions and 16 deletions

View file

@ -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 }}'

View file

@ -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

View file

@ -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'