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コマンドでディレクトリに移動しておきます。
~/$ mkdir docker-compose-ghost(ディレクトリ名はよしなに)
~/$ cd docker-compose-ghost
~/docker-compose-ghost$
2.docker-compose.ymlを作る
touchコマンドでdocker-compose.ymlファイル作成。
$ touch docker-compose.yml
ファイルが作成されたら、viコマンドでdocker.compose.ymlを開き、Dockerイメージの情報やコンテナを起動するための情報を記述していきます。
ちなみにvscodeユーザーなら、"code ."と叩けばすぐにvscode上で編集を始めることもできます。どちらにせよ、編集できればおkなのです。
$ vi docker-compose.yml
もしくは、
$ code .
3.docker-compose.ymlファイルを編集
今回僕は自前でymlファイルを書いたわけではありません。というか書けない。。
ということで、DockerhubにあるGhost公式のリファレンスページで紹介されている記述例をほぼそのまま拝借しました。完成したdocker-compose.ymlファイルはこちら。
「ghost」と「db」、2つのコンテナを作成しています。Volumeとかは作ってないです。
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
$ docker pull ghost
$ docker pull mysql
5.docker-compose upする
docker-compose upコマンドで、それぞれのイメージ、コンテナを作成します。正直このコマンドが何者なのかはまだよくわかってないです。
$ docker-compose up
6.localhost:8080にアクセス
ブラウザからlocalhost:8080にアクセスしてみましょう。
多少表示が違うかもしれませんが、こんな感じでghostのページに遷移すれば成功です!
上記画面にアクセス出来たら、URLを**localhost:8080/ghost/**としてghostを追加します、すると管理者画面に遷移できるので、そのまま作業したいのであればサインアップしちゃいましょう。
今回はとりあえずここまで。
さいごに
Dockerやdocker-composeのこともよくわかっていない中ではあるものの、何とかGhostのローカル環境を立てることができました。(まだ始まってすらいないけど...)
作業自体大したことではないかもしれませんが、Dockerを使った環境構築は僕にとってかなりの感動体験でした。
ちゃんと理解して使うとなると難しい部分が多そうなので、基本からしっかりとキャッチアップしていかねば。