98 lines
2.3 KiB
YAML
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
|