ちなみにインストールには、Docker と docker-compose も必要になるのでその手順も合わせて紹介。また、前提条件としてインストールする Growi のコンテナはブリッジ接続を行います。
まずは下記手順でDockerをインストール。インストールは yum で行います。
console
Dockerを起動。
$ yum install yum-utils
$ yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
$ yum install docker-ce docker-ce-cli containerd.io
console
自動起動の設定と、動作確認の為の hello-world コンテナの作成と実行。
$ systemctl start docker
$ systemctl status docker
起動しているコンテナを確認。(何も表示されない)
$ docker ps
console
ちなみにこの時点でブリッジ用のインタフェースが作成されるので、$ systemctl enable docker
$ docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
c1ec31eb5944: Pull complete
Digest: sha256:d000bc569937abbe195e20322a0bde6b2922d805332fd6d8a68b19f524b7d21d
Status: Downloaded newer image for hello-world:latest
Hello from Docker!
This message shows that your installation appears to be working correctly.
To generate this message, Docker took the following steps:
1. The Docker client contacted the Docker daemon.
2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
(amd64)
3. The Docker daemon created a new container from that image which runs the
executable that produces the output you are currently reading.
4. The Docker daemon streamed that output to the Docker client, which sent it
to your terminal.
To try something more ambitious, you can run an Ubuntu container with:
$ docker run -it ubuntu bash
Share images, automate workflows, and more with a free Docker ID:
https://hub.docker.com/
For more examples and ideas, visit:
https://docs.docker.com/get-started/
ip a
などで確認してみると docker0 (172.17.0.1) のネットワークが追加されてるはずです。また、この時点でもしSSH接続に利用している端末のネットワーク範囲が 172.17.0.0 だったりするとSSHが繋がらなくなるので注意。。。
続いて docker-compose のインストール。
console
$ curl -L "https://github.com/docker/compose/releases/download/v2.24.7/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
$ chmod +x /usr/local/bin/docker-compose
$ ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
$ docker-compose --version
Docker Compose version v2.24.7
自動作成されたdefaultのブリッジネットワークについて、もしIP範囲が被っていたりするとSSHが切断されて繋がらなくなるので、その際はブリッジのIP範囲を変更します。自分の場合は、クライアントPC側のネットワークが 172.17 となっており突然ぶった切られました。。
今回は
172.17.0.0/16 → 192.168.1.0/24
に変更してみます。
console
下記を記載して保存。
$ vi /etc/docker/daemon.json
console
あとはDockerを再起動すれば適用されます。
{
"bip": "192.168.1.0/24"
}
console
$ systemctl status docker
$ systemctl stop docker
$ systemctl start docker
$ ifconfig
✔ブリッジネットワークが 192.18.1.0/24 のIPに変更されてるはず。
Growiのインストールの際にGitサイトから取得してくるのでgitをインストールしておきます。
console
$ yum install git
下記手順でGrowiのコンテナの設定を修正。
console
下記内容でファイルを修正。ちなみに今回は割当メモリも増やしたいと思うのでその内容も変更してます。また、docker-compose をすると自動で専用のブリッジインタフェースが作成されてしまうので、そのIP範囲も事前に設定しておきます。
# cd /opt/
# git clone https://github.com/weseek/growi-docker-compose.git growi
# cd growi/
# cp -p docker-compose.yml docker-compose.yml.org
# vi docker-compose.yml
console
これで準備が完了。あとは docker-compose up でコンテナイメージを作成してそのまま起動します。▼ 下記内容で修正
- 127.0.0.1:3000:3000 # localhost only by default
↓ ローカルホスト以外からの接続を許可
- 3000:3000 # localhost only by default
- "ES_JAVA_OPTS=-Xms256m -Xmx256m" # increase amount if you have enough memory
↓ 割当メモリを増やす
- "ES_JAVA_OPTS=-Xms512m -Xmx512m" # increase amount if you have enough memory
▼ 下記を最下部に追記
networks:
default:
ipam:
config:
- subnet: 192.168.2.0/24
ちなみに
-d オプション
をつけてバックグラウンドで実行。
console
これでインストールまで完了です。あっという間すぎてありがたい‥。# docker-compose up -d
# docker ps
✔稼働していることを確認
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
4b9fad1f9da4 growi-app "dockerize -wait tcp…" About a minute ago Up About a minute 0.0.0.0:3000->3000/tcp growi-app-1
38044b537994 mongo:6.0 "docker-entrypoint.s…" About a minute ago Up About a minute 27017/tcp growi-mongo-1
c62621fce15c growi-elasticsearch "/bin/tini -- /usr/l…" About a minute ago Up About a minute 9200/tcp, 9300/tcp growi-elasticsearch-1
# docker network ls
NETWORK ID NAME DRIVER SCOPE
2f473e56a95b bridge bridge local
2c8b61fb2f26 growi_default bridge local ← ★専用のブリッジインタフェースが作られてる
170e9949428d host host local
a0261f826d22 none null local
ブラウザからGrowiにアクセスできるはずです。
http://ホストのIPアドレス:3000/
お疲れ様でした!!!!