LoginSignup
2
0

More than 1 year has passed since last update.

Dockerでghost(CMS)の環境構築

Posted at

docker-composeでghostのローカル開発環境を立ち上げるまでの手順を簡単に書いていきたいと思います。

なんでやろうと思ったか
ghostを使ってJAMStackなポートフォリオ兼ブログサイトを作りたいと思ったから。
ともかくghostの環境構築にはDockerが良いらしいということで、よくわからないけどやってみることにしました。(GhostのイメージはDockerhubで公式配布されてます)

私はWindowsユーザーなのでWSL2のセットアップからスタートしたわけですが、多少苦戦しながらも5時間ぐらいでローカル環境の立ち上げに成功しました!Dockerすげえよ!!!(今更)

実行環境

  • マシン : Win10 home
  • 実行OS: Ubuntu 20.04 LTS(WSL2)
  • Terminal : Windows Terminal
  • Docker Desktop(ver 20.10.8)

1.プロジェクト用の空ディレクトリを作成

Windows TerminalからUbuntu開いて、そこで作業していきます。
まずは空ディレクトリを作成し、cdコマンドでディレクトリに移動しておきます。

ubuntu-20.04のターミナル
~/$ mkdir docker-compose-ghost(ディレクトリ名はよしなに)

~/$ cd docker-compose-ghost

~/docker-compose-ghost$

2.docker-compose.ymlを作る

touchコマンドでdocker-compose.ymlファイル作成。

ymlファイル作成
$ touch docker-compose.yml

ファイルが作成されたら、viコマンドでdocker.compose.ymlを開き、Dockerイメージの情報やコンテナを起動するための情報を記述していきます。
ちなみにvscodeユーザーなら、"code ."と叩けばすぐにvscode上で編集を始めることもできます。どちらにせよ、編集できればおkなのです。

vimで編集をはじめる
$ vi docker-compose.yml

もしくは、

vscodeにワープ!
$ code .

3.docker-compose.ymlファイルを編集

今回僕は自前でymlファイルを書いたわけではありません。というか書けない。。
ということで、DockerhubにあるGhost公式のリファレンスページで紹介されている記述例をほぼそのまま拝借しました。完成したdocker-compose.ymlファイルはこちら。

「ghost」と「db」、2つのコンテナを作成しています。Volumeとかは作ってないです。

docker-compose.yml
version: '3.1'

services:

  ghost:
    image: ghost:latest
    restart: always
    ports:
      - 8080:2368
    environment:
      # see https://ghost.org/docs/config/#configuration-options
      database__client: mysql
      database__connection__host: db
      database__connection__user: root
      database__connection__password: example
      database__connection__database: ghost
      # this url value is just an example, and is likely wrong for your environment!
      url: http://localhost:8080
      # contrary to the default mentioned in the linked documentation, this image defaults to NODE_ENV=production (so development mode needs to be explicitly specified if desired)
      #NODE_ENV: development

  db:
    image: mysql:5.7
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: example

ほぼそのままと言いましたが、上記の完成ファイルは一点だけ変更を加えています。Dockerhubのページで紹介されている記述では、ghostイメージのバージョン指定が4-alpineとなっていますが、これだとうまくローカル環境にアクセスできませんでした。
最新バージョンを指定するlatestに変更することで問題なくアクセスできたので、ひとまずこのようにしています。

変更した箇所
- image: ghost:4-alpine
+ image: ghost:latest 

4.ghost,mysqlのイメージを入手

今回使用するイメージを入手しておきます。僕はこれを忘れて沼にハマっていましたw

それぞれのimageをpull
$ docker pull ghost

$ docker pull mysql

5.docker-compose upする

docker-compose upコマンドで、それぞれのイメージ、コンテナを作成します。正直このコマンドが何者なのかはまだよくわかってないです。

$ docker-compose up

うまくいけば、こんな感じでダーッとログが走るハズ。
image.png

6.localhost:8080にアクセス

ブラウザからlocalhost:8080にアクセスしてみましょう。
多少表示が違うかもしれませんが、こんな感じでghostのページに遷移すれば成功です!

image.png

上記画面にアクセス出来たら、URLをlocalhost:8080/ghost/としてghostを追加します、すると管理者画面に遷移できるので、そのまま作業したいのであればサインアップしちゃいましょう。

今回はとりあえずここまで。

さいごに

Dockerやdocker-composeのこともよくわかっていない中ではあるものの、何とかGhostのローカル環境を立てることができました。(まだ始まってすらいないけど...)

作業自体大したことではないかもしれませんが、Dockerを使った環境構築は僕にとってかなりの感動体験でした。
ちゃんと理解して使うとなると難しい部分が多そうなので、基本からしっかりとキャッチアップしていかねば。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0