diff --git a/roles/docker-gitea/handlers/main.yml b/roles/docker-gitea/handlers/main.yml new file mode 100644 index 00000000..328cb4d1 --- /dev/null +++ b/roles/docker-gitea/handlers/main.yml @@ -0,0 +1,8 @@ +--- +- name: recreate gitea + command: + cmd: docker-compose -p gitea up -d --force-recreate + chdir: /home/administrator/docker-compose/gitea/ + environment: + COMPOSE_HTTP_TIMEOUT: 600 + DOCKER_CLIENT_TIMEOUT: 600 diff --git a/roles/docker-gitea/tasks/main.yml b/roles/docker-gitea/tasks/main.yml index d1e7ed35..7e38adc0 100644 --- a/roles/docker-gitea/tasks/main.yml +++ b/roles/docker-gitea/tasks/main.yml @@ -6,45 +6,12 @@ template: src=roles/native-docker-reverse-proxy/templates/domain.conf.j2 dest=/etc/nginx/conf.d/{{domain}}.conf notify: restart nginx -- name: container present - docker_compose: - project_name: gitea - definition: - application: - restart: always - image: gitea/gitea:latest - log_driver: journald - environment: - - USER_UID=1000 - - USER_GID=1000 - - DB_TYPE=mysql - - DB_HOST=database:3306 - - DB_NAME=gitea - - DB_USER=gitea - - DB_PASSWD={{gitea_database_password}} - - SSH_PORT={{ssh_port}} - - SSH_LISTEN_PORT=22 - - DOMAIN={{domain}} - - SSH_DOMAIN={{domain}} - - RUN_MODE="{{run_mode}}" - - ROOT_URL="https://{{domain}}/" - ports: - - "127.0.0.1:{{http_port}}:3000" - - "{{ssh_port}}:22" - links: - - database - volumes: - - gitea-data:/data - - /etc/timezone:/etc/timezone:ro - - /etc/localtime:/etc/localtime:ro - database: - image: mariadb - log_driver: journald - environment: - MYSQL_DATABASE: "gitea" - MYSQL_USER: "gitea" - MYSQL_PASSWORD: "{{gitea_database_password}}" - MYSQL_RANDOM_ROOT_PASSWORD: 'yes' - volumes: - - gitea-database:/var/lib/mysql - restart: always +- name: "create /home/administrator/docker-compose/gitea/" + file: + path: "/home/administrator/docker-compose/gitea/" + state: directory + mode: 0755 + +- name: add docker-compose.yml + template: src=docker-compose.yml.j2 dest=/home/administrator/docker-compose/gitea/docker-compose.yml + notify: recreate gitea diff --git a/roles/docker-gitea/templates/docker-compose.yml.j2 b/roles/docker-gitea/templates/docker-compose.yml.j2 new file mode 100644 index 00000000..d0b25c04 --- /dev/null +++ b/roles/docker-gitea/templates/docker-compose.yml.j2 @@ -0,0 +1,56 @@ +version: '3' + +services: + application: + logging: + driver: journald + restart: always + image: gitea/gitea:latest + environment: + - USER_UID=1000 + - USER_GID=1000 + - DB_TYPE=mysql + - DB_HOST=database:3306 + - DB_NAME=gitea + - DB_USER=gitea + - DB_PASSWD={{gitea_database_password}} + - SSH_PORT={{ssh_port}} + - SSH_LISTEN_PORT=22 + - DOMAIN={{domain}} + - SSH_DOMAIN={{domain}} + - RUN_MODE="{{run_mode}}" + - ROOT_URL="https://{{domain}}/" + ports: + - "127.0.0.1:{{http_port}}:3000" + - "{{ssh_port}}:22" + links: + - database + volumes: + - data:/data + - /etc/timezone:/etc/timezone:ro + - /etc/localtime:/etc/localtime:ro + depends_on: + - database + database: + logging: + driver: journald + image: mariadb + restart: always + environment: + MYSQL_DATABASE: "gitea" + MYSQL_USER: "gitea" + MYSQL_PASSWORD: "{{gitea_database_password}}" + MYSQL_RANDOM_ROOT_PASSWORD: 'yes' + volumes: + - database:/var/lib/mysql + healthcheck: + test: "/usr/bin/mysql --user=gitea --password={{gitea_database_password}} --execute \"SHOW DATABASES;\"" + interval: 3s + timeout: 1s + retries: 5 +volumes: + database: + data: +networks: + default: + driver: bridge diff --git a/roles/docker-wordpress/handlers/main.yml b/roles/docker-wordpress/handlers/main.yml new file mode 100644 index 00000000..a0e69d58 --- /dev/null +++ b/roles/docker-wordpress/handlers/main.yml @@ -0,0 +1,8 @@ +--- +- name: recreate wordpress + command: + cmd: docker-compose -p wordpress up -d --force-recreate + chdir: /home/administrator/docker-compose/wordpress/ + environment: + COMPOSE_HTTP_TIMEOUT: 600 + DOCKER_CLIENT_TIMEOUT: 600 diff --git a/roles/docker-wordpress/tasks/main.yml b/roles/docker-wordpress/tasks/main.yml index efea07d6..f8b1a383 100644 --- a/roles/docker-wordpress/tasks/main.yml +++ b/roles/docker-wordpress/tasks/main.yml @@ -11,36 +11,12 @@ loop: "{{domains}}" notify: restart nginx -- name: "setup wordpress" - environment: - DOCKER_CLIENT_TIMEOUT: 120 - COMPOSE_HTTP_TIMEOUT: 120 - docker_compose: - project_name: wordpress - definition: - application: - log_driver: journald - image: wordpress - restart: always - ports: - - "127.0.0.1:{{http_port}}:80" - environment: - WORDPRESS_DB_HOST: database:3306 - WORDPRESS_DB_USER: "wordpress" - WORDPRESS_DB_PASSWORD: "{{wordpress_database_password}}" - WORDPRESS_DB_NAME: "wordpress" - links: - - database - volumes: - - wordpress-data:/var/www/html - database: - log_driver: journald - image: mariadb - restart: always - environment: - MYSQL_DATABASE: "wordpress" - MYSQL_USER: "wordpress" - MYSQL_PASSWORD: "{{wordpress_database_password}}" - MYSQL_RANDOM_ROOT_PASSWORD: 'yes' - volumes: - - wordpress-database:/var/lib/mysql +- name: "create /home/administrator/docker-compose/wordpress/" + file: + path: "/home/administrator/docker-compose/wordpress/" + state: directory + mode: 0755 + +- name: add docker-compose.yml + template: src=docker-compose.yml.j2 dest=/home/administrator/docker-compose/wordpress/docker-compose.yml + notify: recreate wordpress diff --git a/roles/docker-wordpress/templates/docker-compose.yml.j2 b/roles/docker-wordpress/templates/docker-compose.yml.j2 new file mode 100644 index 00000000..e0b7492a --- /dev/null +++ b/roles/docker-wordpress/templates/docker-compose.yml.j2 @@ -0,0 +1,44 @@ +version: '3' + +services: + application: + logging: + driver: journald + image: wordpress + restart: always + ports: + - "127.0.0.1:{{http_port}}:80" + environment: + WORDPRESS_DB_HOST: database:3306 + WORDPRESS_DB_USER: "wordpress" + WORDPRESS_DB_PASSWORD: "{{wordpress_database_password}}" + WORDPRESS_DB_NAME: "wordpress" + links: + - database + volumes: + - data:/var/www/html + depends_on: + - database + database: + logging: + driver: journald + image: mariadb + restart: always + environment: + MYSQL_DATABASE: "wordpress" + MYSQL_USER: "wordpress" + MYSQL_PASSWORD: "{{wordpress_database_password}}" + MYSQL_RANDOM_ROOT_PASSWORD: 'yes' + volumes: + - database:/var/lib/mysql + healthcheck: + test: "/usr/bin/mysql --user=wordpress --password={{wordpress_database_password}} --execute \"SHOW DATABASES;\"" + interval: 3s + timeout: 1s + retries: 5 +volumes: + database: + data: +networks: + default: + driver: bridge diff --git a/roles/docker-yourls/handlers/main.yml b/roles/docker-yourls/handlers/main.yml new file mode 100644 index 00000000..e31116c5 --- /dev/null +++ b/roles/docker-yourls/handlers/main.yml @@ -0,0 +1,8 @@ +--- +- name: recreate yourls + command: + cmd: docker-compose -p yourls up -d --force-recreate + chdir: /home/administrator/docker-compose/yourls/ + environment: + COMPOSE_HTTP_TIMEOUT: 600 + DOCKER_CLIENT_TIMEOUT: 600 diff --git a/roles/docker-yourls/tasks/main.yml b/roles/docker-yourls/tasks/main.yml index d80ac424..ec9b0907 100644 --- a/roles/docker-yourls/tasks/main.yml +++ b/roles/docker-yourls/tasks/main.yml @@ -6,35 +6,12 @@ template: src=roles/native-docker-reverse-proxy/templates/domain.conf.j2 dest=/etc/nginx/conf.d/{{domain}}.conf notify: restart nginx -- name: "setup yourls" - environment: - DOCKER_CLIENT_TIMEOUT: 120 - COMPOSE_HTTP_TIMEOUT: 120 - docker_compose: - project_name: yourls - definition: - application: - image: yourls - restart: always - ports: - - "127.0.0.1:{{http_port}}:80" - environment: - YOURLS_DB_HOST: "database:3306" - YOURLS_DB_USER: "yourls" - YOURLS_DB_PASS: "{{yourls_database_password}}" - YOURLS_DB_NAME: "yourls" - YOURLS_SITE: "https://{{domain}}" - YOURLS_USER: "{{yourls_user}}" - YOURLS_PASS: "{{yourls_user_password}}" - links: - - database - database: - image: mariadb - restart: always - environment: - MYSQL_DATABASE: "yourls" - MYSQL_USER: "yourls" - MYSQL_PASSWORD: "{{yourls_database_password}}" - MYSQL_RANDOM_ROOT_PASSWORD: 'yes' - volumes: - - yourls-database:/var/lib/mysql +- name: "create /home/administrator/docker-compose/yourls/" + file: + path: "/home/administrator/docker-compose/yourls/" + state: directory + mode: 0755 + +- name: add docker-compose.yml + template: src=docker-compose.yml.j2 dest=/home/administrator/docker-compose/yourls/docker-compose.yml + notify: recreate yourls diff --git a/roles/docker-yourls/templates/docker-compose.yml.j2 b/roles/docker-yourls/templates/docker-compose.yml.j2 new file mode 100644 index 00000000..123d3d91 --- /dev/null +++ b/roles/docker-yourls/templates/docker-compose.yml.j2 @@ -0,0 +1,44 @@ +version: '3' + +services: + application: + logging: + driver: journald + image: yourls + restart: always + ports: + - "127.0.0.1:{{http_port}}:80" + environment: + YOURLS_DB_HOST: "database:3306" + YOURLS_DB_USER: "yourls" + YOURLS_DB_PASS: "{{yourls_database_password}}" + YOURLS_DB_NAME: "yourls" + YOURLS_SITE: "https://{{domain}}" + YOURLS_USER: "{{yourls_user}}" + YOURLS_PASS: "{{yourls_user_password}}" + links: + - database + depends_on: + - database + database: + logging: + driver: journald + image: mariadb + restart: always + environment: + MYSQL_DATABASE: "yourls" + MYSQL_USER: "yourls" + MYSQL_PASSWORD: "{{yourls_database_password}}" + MYSQL_RANDOM_ROOT_PASSWORD: 'yes' + volumes: + - database:/var/lib/mysql + healthcheck: + test: "/usr/bin/mysql --user=yourls --password={{yourls_database_password}} --execute \"SHOW DATABASES;\"" + interval: 3s + timeout: 1s + retries: 5 +volumes: + database: +networks: + default: + driver: bridge