Tristan Snowsill преди 7 години
ревизия
856759aae1
променени са 5 файла, в които са добавени 127 реда и са изтрити 0 реда
  1. 1 0
      .gitignore
  2. 25 0
      gogs/docker-compose.yml
  3. 23 0
      traefik/docker-compose.yml
  4. 31 0
      traefik/traefik.toml
  5. 47 0
      web/docker-compose.yml

+ 1 - 0
.gitignore

@@ -0,0 +1 @@
+traefik/acme.json

+ 25 - 0
gogs/docker-compose.yml

@@ -0,0 +1,25 @@
+version: "3"
+services:
+    gogs:
+        image: gogs/gogs
+        restart: always
+        expose:
+            - "3000"
+        ports:
+            - "2222:22"
+        networks:
+            - traefik
+        volumes:
+            - gogs-data:/data
+        labels:
+            - "traefik.frontend.rule=Host:git.example.com"
+            - "traefik.enable=true"
+            - "traefik.docker.network=traefik"
+            - "traefik.port=3000"
+            - "traefik.protocol=http"
+volumes:
+    gogs-data:
+        driver: local
+networks:
+    traefik:
+        external: true

+ 23 - 0
traefik/docker-compose.yml

@@ -0,0 +1,23 @@
+version: "3"
+services:
+    traefik:
+        image: traefik:1.6.4-alpine
+        restart: always
+        networks:
+            - traefik
+        ports:
+            - "80:80"
+            - "443:443"
+        volumes:
+            - /var/run/docker.sock:/var/run/docker.sock
+            - /home/user/traefik/traefik.toml:/traefik.toml
+            - /home/user/traefik/acme.json:/acme.json
+        labels:
+            - traefik.frontend.rule=Host:traefik.example.com
+            - traefik.port=8080
+        environment:
+            - DO_AUTH_TOKEN=
+networks:
+    traefik:
+        external:
+            name: traefik

+ 31 - 0
traefik/traefik.toml

@@ -0,0 +1,31 @@
+defaultEntryPoints = ["http", "https"]
+
+# note that the web provider is deprecated, should use api instead
+[web]
+address = ":8080"
+    [web.auth.basic]
+    users = ["use htpasswd to generate"]
+
+[entryPoints]
+    [entryPoints.http]
+    address = ":80"
+        [entryPoints.http.redirect]
+            entryPoint = "https"
+    [entryPoints.https]
+    address = ":443"
+        [entryPoints.https.tls]
+
+[docker]
+endpoint = "unix:///var/run/docker.sock"
+domain = "docker.local"
+watch = true
+
+[acme]
+email = "user@example.com"
+storage = "acme.json"
+entryPoint = "https"
+onHostRule = true
+onDemand = false
+[acme.dnsChallenge]
+    provider = "digitalocean"
+    delayBeforeCheck = 0

+ 47 - 0
web/docker-compose.yml

@@ -0,0 +1,47 @@
+version: "3"
+services:
+    wordpress:
+        image: wordpress
+        restart: always
+        environment:
+            - WORDPRESS_DB_HOST=mysql:3306
+            - WORDPRESS_DB_USER=wordpressuser
+            - WORDPRESS_DB_PASSWORD=wordpresspassword
+            - WORDPRESS_DB_NAME=wordpress
+            - WORDPRESS_TABLE_PREFIX=dockerwp
+        volumes:
+            - wordpress-data:/var/www/html
+        networks:
+            - backend
+            - traefik
+        links:
+            - mysql
+        labels:
+            - traefik.frontend.rule=Host:blog.example.com
+            - traefik.backend=wordpress
+            - traefik.docker.network=proxy
+            - traefik.port=80
+    mysql:
+        image: mysql:5.7
+        restart: always
+        environment:
+            - MYSQL_ROOT_PASSWORD=mysqlrootpassword
+            - MYSQL_DATABASE=wordpress
+            - MYSQL_USER=wordpressuser
+            - MYSQL_PASSWORD=wordpressuserpassword
+        volumes:
+            - mysql-data:/var/lib/mysql
+        networks:
+            - backend
+        labels:
+            - "traefik.enable=false"
+volumes:
+    wordpress-data:
+        driver: local
+    mysql-data:
+        driver: local
+networks:
+    backend:
+        driver: bridge
+    traefik:
+        external: true