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
[![Build Status](https://drone.autonomic.zone/api/badges/autonomic-cooperative/wordpress/status.svg)](https://drone.autonomic.zone/autonomic-cooperative/wordpress)
> https://wordpress.org
> https://wp.swarm.autonomic.zone
## Development
```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
the production deploy. So, we can just avoid doing this altogether for the
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:
wordpress:
image: wordpress:5.4.1
ports:
- 8010:80
depends_on:
- mariadb
environment:
WORDPRESS_DB_HOST: mariadb
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
WORDPRESS_DB_NAME: wordpress
mariadb:
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:
wordpress:
image: "wordpress:5.4.1"
ports:
- "3050:80"
- "${wordpress.port}:80"
volumes:
- "wp:/var/www/html"
networks:
@ -26,13 +27,14 @@ services:
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"
traefik.enable: "true"
traefik.http.services.wordpress.loadbalancer.server.port: "80"
traefik.http.routers.wordpress.rule: "Host(`${wordpress.domain}`)"
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:

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