Mei 7, 2017

Docker setup untuk ghost blog

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