Added seperat redis

This commit is contained in:
Kevin Veen-Birkenbach 2024-01-05 20:16:08 +01:00
parent 6836ceebdd
commit cda6f1a8dc
9 changed files with 51 additions and 37 deletions

View File

@ -2,4 +2,4 @@
- name: recreate discourse
command:
cmd: ./launcher rebuild app
chdir: "{{docker_compose_instance_directory}}"
chdir: "{{discourse_repository_directory}}"

View File

@ -18,30 +18,51 @@
state: directory
mode: 0755
- name: checkout repository
ansible.builtin.shell: git checkout .
become: true
args:
chdir: "{{docker_compose_instance_directory}}"
ignore_errors: true
- name: add docker-compose.yml
template: src=docker-compose.yml.j2 dest={{docker_compose_instance_directory}}docker-compose.yml
notify: docker compose project setup
- name: flush, to recreate discourse docker compose
meta: flush_handlers
when: enable_central_database | bool
- name: pull docker repository
git:
repo: "https://github.com/discourse/discourse_docker.git"
dest: "{{docker_compose_instance_directory}}"
dest: "{{discourse_repository_directory}}"
update: yes
notify: recreate discourse
become: true
ignore_errors: true
- name: set chmod 700 for {{docker_compose_instance_directory}}containers
- name: set chmod 700 for {{discourse_repository_directory}}containers
ansible.builtin.file:
path: "{{docker_compose_instance_directory}}/containers"
path: "{{discourse_repository_directory}}/containers"
mode: '700'
state: directory
- name: "copy configuration to {{docker_compose_instance_directory}}containers/app.yml"
- name: "copy configuration to {{discourse_repository_directory}}containers/app.yml"
template:
src: app.yml.j2
dest: "{{docker_compose_instance_directory}}containers/app.yml"
notify: recreate discourse
dest: "{{discourse_repository_directory}}containers/app.yml"
notify: recreate discourse
- name: "Ensure {{docker_compose_project_name}}_default_network network exists"
community.docker.docker_network:
name: "{{docker_compose_project_name}}_default_network"
state: present
when: enable_central_database | bool
- name: "add central database temporary to {{docker_compose_project_name}}_default_network"
command:
cmd: "docker network connect discourse_default_network central-{{ database_type }}"
when: enable_central_database | bool
- name: flush, to recreate discourse app
meta: flush_handlers
when: enable_central_database | bool
- name: "remove central database from {{docker_compose_project_name}}_default_network"
command:
cmd: "docker network disconnect discourse_default_network central-{{ database_type }}"
when: enable_central_database | bool

View File

@ -1,17 +1,8 @@
## this is the all-in-one, standalone Discourse Docker container template
##
## After making changes to this file, you MUST rebuild
## /var/discourse/launcher rebuild app
##
## BE *VERY* CAREFUL WHEN EDITING!
## YAML FILES ARE SUPER SUPER SENSITIVE TO MISTAKES IN WHITESPACE OR ALIGNMENT!
## visit http://www.yamllint.com/ to validate this file as needed
templates:
{% if not enable_central_database | bool %}
- "templates/postgres.template.yml"
{% endif %}
- "templates/redis.template.yml"
#- "templates/redis.template.yml"
- "templates/web.template.yml"
## Uncomment the next line to enable the IPv6 listener
#- "templates/web.ipv6.template.yml"
@ -25,7 +16,6 @@ templates:
## see https://meta.discourse.org/t/17247 for details
expose:
- "127.0.0.1:{{http_port}}:80" # http
#- "443:443" # https
params:
db_default_text_search_config: "pg_catalog.english"
@ -73,13 +63,14 @@ env:
DISCOURSE_SMTP_DOMAIN: {{ system_email_domain }}
DISCOURSE_NOTIFICATION_EMAIL: {{ system_email }}
{% if enable_central_database | bool %}
# Database Configuration
DISCOURSE_DB_USERNAME: {{ database_username }}
DISCOURSE_DB_PASSWORD: {{ database_password }}
DISCOURSE_DB_HOST: {{ database_host }}
DISCOURSE_DB_NAME: {{ database_databasename }}
{% endif %}
# Redis Configuration
DISCOURSE_REDIS_HOST: {{docker_compose_project_name}}-redis
## If you added the Lets Encrypt template, uncomment below to get a free SSL certificate
#LETSENCRYPT_ACCOUNT_EMAIL: administrator@veen.world
@ -127,7 +118,5 @@ run:
- exec: echo "End of custom commands"
docker_args:
{% if enable_central_database | bool %}
- --network=central_{{ database_type }}_network
{% endif %}
- --network={{docker_compose_project_name}}_default_network
- --name=discourse_application

View File

@ -1,3 +1,4 @@
docker_compose_project_name: "discourse"
database_password: "{{ baserow_database_password }}"
database_type: "postgres"
docker_compose_project_name: "discourse"
database_password: "{{ baserow_database_password }}"
database_type: "postgres"
discourse_repository_directory: "{{ path_docker_compose_instances + docker_compose_project_name + '/repository/' }}"

View File

@ -4,5 +4,5 @@ networks:
central_{{ database_type }}_network:
external: true
{% endif %}
{{docker_compose_project_name}}_network:
default_network:
{{ "\n" }}

View File

@ -1,6 +1,6 @@
# This template needs to be included in docker-compose.yml containers
networks:
{{docker_compose_project_name}}_network:
default_network:
{% if enable_central_database | bool %}
central_{{ database_type }}_network:
{% endif %}

View File

@ -1,6 +1,7 @@
# This template needs to be included in docker-compose.yml, which depend on a mariadb database
{% if not enable_central_database | bool %}
database:
container_name: {{docker_compose_project_name}}-mariadb
logging:
driver: journald
image: mariadb
@ -20,6 +21,6 @@
timeout: 1s
retries: 5
networks:
- {{docker_compose_project_name}}_network
- default_network
{% endif %}
{{ "\n" }}

View File

@ -2,6 +2,7 @@
{% if not enable_central_database | bool %}
database:
image: postgres:{{database_version}}-alpine
container_name: {{docker_compose_project_name}}-postgres
environment:
- POSTGRES_PASSWORD={{database_password}}
- POSTGRES_USER={{database_username}}
@ -18,6 +19,6 @@
source: database
target: /var/lib/postgresql/data
networks:
- {{docker_compose_project_name}}_network
- default_network
{% endif %}
{{ "\n" }}

View File

@ -1,6 +1,7 @@
# This template needs to be included in docker-compose.yml, which depend on redis
redis:
image: redis:alpine
container_name: {{docker_compose_project_name}}-redis
restart: always
logging:
driver: journald
@ -12,5 +13,5 @@
timeout: 3s
retries: 30
networks:
- {{docker_compose_project_name}}_network
- default_network
{{ "\n" }}