Running sprint at CNABing wordpress

This commit is contained in:
Luke Murphy 2020-05-15 20:26:04 +02:00
parent d545ab4861
commit d14e5885be
No known key found for this signature in database
GPG Key ID: 5E2EF5A63E3718CC
9 changed files with 103 additions and 57 deletions

View File

@ -1,22 +0,0 @@
---
kind: pipeline
name: deploy to swarm.autonomic.zone
steps:
- name: deployment
image: decentral1se/drone-stack:19.03.8-override-compose
settings:
compose: docker-compose.yml
host: tcp://swarm.autonomic.zone:2376
override_compose: docker-compose.production.yml
stack_name: wordpress
tlsverify: true
environment:
PLUGIN_CACERT:
from_secret: docker_cacert
PLUGIN_CERT:
from_secret: docker_cert
PLUGIN_KEY:
from_secret: docker_key
trigger:
branch:
- master

View File

@ -1,11 +1,7 @@
# wordpress # wordpress
[![Build Status](https://drone.autonomic.zone/api/badges/autonomic-cooperative/wordpress/status.svg)](https://drone.autonomic.zone/autonomic-cooperative/wordpress)
> https://wordpress.org > https://wordpress.org
> https://wp.swarm.autonomic.zone
## Development ## Development
```bash ```bash
@ -25,8 +21,3 @@ of something like [wait-for-it](https://github.com/vishnubob/wait-for-it)
because the `depends_on` stanza makes Docker swarm wait for it to come up on because the `depends_on` stanza makes Docker swarm wait for it to come up on
the production deploy. So, we can just avoid doing this altogether for the the production deploy. So, we can just avoid doing this altogether for the
development workflow to save ourselves work. development workflow to save ourselves work.
## Production
1. Our [drone.autonomic.zone](https://drone.autonomic.zone/autonomic-cooperative/wordpress/) configuration automatically deploys.
1. For a manual deploy guide, see [this documentation](https://git.autonomic.zone/autonomic-cooperative/organising/wiki/working-with-docker-swarm).

View File

@ -1,19 +0,0 @@
---
version: "3.7"
services:
wordpress:
ports:
- "8010:80"
environment:
- WORDPRESS_DB_HOST=mariadb
- WORDPRESS_DB_USER=wordpress
- WORDPRESS_DB_PASSWORD=wordpress
- WORDPRESS_DB_NAME=wordpress
mariadb:
environment:
- MYSQL_ROOT_PASSWORD=somewordpress
- MYSQL_DATABASE=wordpress
- MYSQL_USER=wordpress
- MYSQL_PASSWORD=wordpress

67
docker-compose.prod.yml Normal file
View File

@ -0,0 +1,67 @@
---
version: "3.7"
services:
wordpress:
image: wordpress:5.4.1
ports:
- 3050:80
volumes:
- wp:/var/www/html
networks:
- backend
- proxy
environment:
- WORDPRESS_DB_HOST=mariadb
- WORDPRESS_DB_USER=wordpress
- WORDPRESS_DB_PASSWORD_FILE=/run/secrets/wp-db-passwd-v1
- WORDPRESS_DB_NAME=wordpress
secrets:
- wp-db-passwd-v1
deploy:
mode: replicated
replicas: 1
update_config:
failure_action: rollback
placement:
constraints:
- node.role == manager
labels:
traefik.enable: "true"
traefik.http.services.wordpress.loadbalancer.server.port: "80"
traefik.http.routers.wordpress.rule: "Host(`wp.swarm.autonomic.zone`)"
traefik.http.routers.wordpress.entrypoints: "web-secure"
traefik.http.routers.wordpress.tls.certresolver: "staging"
mariadb:
image: mariadb:10.5
volumes:
- db:/var/lib/mysql
networks:
- backend
environment:
- MYSQL_ROOT_PASSWORD_FILE=/run/secrets/mysql-root-passwd-v1
- MYSQL_DATABASE=wordpress
- MYSQL_USER=wordpress
- MYSQL_PASSWORD_FILE=/run/secrets/mysql-user-passwd-v1
secrets:
- mysql-root-passwd-v1
- mysql-user-passwd-v1
networks:
backend:
driver: overlay
proxy:
external: true
volumes:
db:
wp:
secrets:
wp-db-passwd-v1:
external: true
mysql-root-passwd-v1:
external: true
mysql-user-passwd-v1:
external: true

View File

@ -1,11 +1,23 @@
--- ---
version: "3.7" version: 3.7
services: services:
wordpress: wordpress:
image: wordpress:5.4.1 image: wordpress:5.4.1
ports:
- 8010:80
depends_on: depends_on:
- mariadb - mariadb
environment:
WORDPRESS_DB_HOST: mariadb
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
WORDPRESS_DB_NAME: wordpress
mariadb: mariadb:
image: mariadb:10.5 image: mariadb:10.5
environment:
MYSQL_ROOT_PASSWORD: somewordpress
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress

3
params.yml Normal file
View File

@ -0,0 +1,3 @@
wordpress:
port: 8000
domain: foobar.com

View File

@ -3,8 +3,9 @@ version: "3.7"
services: services:
wordpress: wordpress:
image: "wordpress:5.4.1"
ports: ports:
- "3050:80" - "${wordpress.port}:80"
volumes: volumes:
- "wp:/var/www/html" - "wp:/var/www/html"
networks: networks:
@ -26,13 +27,14 @@ services:
constraints: constraints:
- node.role == manager - node.role == manager
labels: labels:
- "traefik.enable=true" traefik.enable: "true"
- "traefik.http.services.wordpress.loadbalancer.server.port=80" traefik.http.services.wordpress.loadbalancer.server.port: "80"
- "traefik.http.routers.wordpress.rule=Host(`wp.swarm.autonomic.zone`)" traefik.http.routers.wordpress.rule: "Host(`${wordpress.domain}`)"
- "traefik.http.routers.wordpress.entrypoints=web-secure" traefik.http.routers.wordpress.entrypoints: "web-secure"
- "traefik.http.routers.wordpress.tls.certresolver=staging" traefik.http.routers.wordpress.tls.certresolver: "staging"
mariadb: mariadb:
image: "mariadb:10.5"
volumes: volumes:
- "db:/var/lib/mysql" - "db:/var/lib/mysql"
networks: networks:

View File

@ -0,0 +1,9 @@
---
version: 0.1.0
name: wordpress
description: |
WordPress is open source software you can use to create a beautiful website,
blog, or app.
maintainers:
- name: decentral1se
email: lukewm@riseup.net

View File

@ -0,0 +1,3 @@
wordpress:
port: 3050
domain: example.com