Docker setup untuk ghost blog

Ini adalah Docker setup untuk blogku yang memakai Ghost, nginx dan mariadb.

Setup proses

Buat master folder, kuberi nama blog

mkdir blog  

didalam blog buat folder nginx dan buat site konfigurasinya

cd blog  
mkdir nginx

cd nginx  
mkdir sites

cd sites  
nano antaraksi.com.conf  

isikan konfigurasi ini dengan nano pada antaraksi.com.conf

upstream blog {  
  least_conn;
  server ghost:2368;
}

server {  
  listen 80;
  server_name localhost;

  location / {
    proxy_pass http://blog;

    proxy_set_header Host $http_host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_read_timeout 900;
  }
}

setelah itu, buat Dockerfile untuk nginx, kembali ke folder nginx dan tambahkan file Dockerfile isikan

FROM nginx:alpine  
ADD sites/* /etc/nginx/conf.d/  
EXPOSE 80  

Pindah ke master blog folder, tambahkan docker-compose.yml isikan dengan

version: '3'  
services:  
    nginx:
        build:
            context: nginx/
            dockerfile: Dockerfile
        image: antaraksi/nginx:latest
        container_name: antaraksi-nginx
        restart: always
        ports:
          - 80:80
        depends_on:
          - ghost
          - mariadb
        environment:
          - HOST='localhost'

    mariadb:
        image: library/mariadb:latest
        container_name: antaraksi-mariadb
        ports:
            - "3306:3306"
        volumes:
            - ./mariadb/mysql:/var/lib/mysql
        environment:
            - MYSQL_ROOT_PASSWORD=my-secret-pw
            - MYSQL_DATABASE=antaraksi

    ghost:
        image: ghost
        container_name: antaraksi-ghost
        restart: always
        links:
          - mariadb
        volumes:
          - ./data/ghost:/var/lib/ghost:rw
        depends_on:
          - mariadb
        environment:
          - NODE_ENV=production
          - DB_HOST=mariadb
          - DB_USER=root
          - DB_PASS=my-secret-pw
          - DB=antaraksi
          - HOST=http://localhost

Setelah itu build nginx dengan perintah

docker-compose build nginx  

dan setelah itu jalankan

docker-compose up  

File lengkap bisa dilihat di antaraksi/docker_blog_ghost