church-website/infra/ansible/roles/app/tasks/deploy_env.yml
2026-04-16 13:22:17 +02:00

98 lines
2.3 KiB
YAML

---
- name: "{{ env.name }} | Build app image"
ansible.builtin.command:
argv:
- docker
- build
- --build-arg
- "NEXT_PUBLIC_SERVER_URL=https://{{ env.domain }}"
- --build-arg
- "NEXT_PUBLIC_SITE_ID={{ env.site_id }}"
- -t
- "church-website:{{ env.name }}"
- "{{ repo_dir }}"
changed_when: true
- name: "{{ env.name }} | Build migration image"
ansible.builtin.command:
argv:
- docker
- build
- --target
- builder
- --build-arg
- "NEXT_PUBLIC_SERVER_URL=https://{{ env.domain }}"
- --build-arg
- "NEXT_PUBLIC_SITE_ID={{ env.site_id }}"
- -t
- "church-website-migrate:{{ env.name }}"
- "{{ repo_dir }}"
changed_when: true
- name: "{{ env.name }} | Run database migrations"
ansible.builtin.command:
argv:
- docker
- run
- --rm
- --network
- "{{ docker_network }}"
- --env-file
- "{{ envs_dir }}/{{ env.name }}/.env"
- "church-website-migrate:{{ env.name }}"
- npx
- payload
- migrate
changed_when: true
- name: "{{ env.name }} | Stop old container"
ansible.builtin.command: "docker stop app-{{ env.name }}"
failed_when: false
changed_when: true
- name: "{{ env.name }} | Remove old container"
ansible.builtin.command: "docker rm app-{{ env.name }}"
failed_when: false
changed_when: true
- name: "{{ env.name }} | Start new container"
ansible.builtin.command:
argv:
- docker
- run
- -d
- --name
- "app-{{ env.name }}"
- --restart
- unless-stopped
- --network
- "{{ docker_network }}"
- --env-file
- "{{ envs_dir }}/{{ env.name }}/.env"
- -v
- "uploads-{{ env.name }}-media:/app/media"
- -v
- "uploads-{{ env.name }}-documents:/app/documents"
- -p
- "127.0.0.1:{{ env.port }}:3000"
- "church-website:{{ env.name }}"
changed_when: true
- name: "{{ env.name }} | Fix upload volume permissions"
ansible.builtin.command:
argv:
- docker
- exec
- -u
- "0"
- "app-{{ env.name }}"
- chown
- -R
- 1001:1001
- /app/media
- /app/documents
changed_when: true
- name: "{{ env.name }} | Prune old Docker images"
ansible.builtin.command: docker image prune -f
changed_when: true