55
64

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Alfrescoを構築するdocker-compose.yml

Posted at

背景

脱ファイルサーバ!!個人でも会社でも使えるOSSのドキュメント管理システム!その名も「Alfresco」!
こちらの記事でAlfrescoを知り、へえ~こんなのあるんだ~、ちょいと試してみますかと思い立ったものの、
Alfrescoは構成要素が多く構築するだけで一苦労です。(インストーラーはかなりのことをしてくれますが、それでも)
構築が終わるころにはそれで満足してしまい、本来の目的である機能の検証がおろそかになってしまいがちではないでしょうか。
そこで、こんな時のコンテナやろがい!と、dockerの使いどころを求めていた私はdocker-compose.ymlをこしらえました。
構築が面倒な方はぜひ使ってみてください。

インストール手順は下記の記事をまるっと参考にさせて頂いております。:bow:
Alfrescoのインストール作業をコマンド単位で丁寧に記載します

reqired

ホストのメモリ >= 2GB
docker >= 1.10
docker-compose >= 1.6

docker-compose.yml

docker-compose.yml
version: "2"
services:
  nginx:
    image: nginx
    volumes:
      - "./nginx/alfresco.conf:/etc/nginx/conf.d/alfresco.conf:ro"
    ports:
      - "80:80"
    depends_on:
      - alfresco
    networks:
      - flat-network
  alfresco:
    build: ./alfresco
    expose:
      - "8080"
    depends_on:
      - db
    volumes:
      - "alfresco-data:/opt/alfresco/alf_data/"
    networks:
      - flat-network
  db:
    image: mysql:5.7
    volumes:
      - "db-data:/var/lib/mysql"
      - "./db/mysql/conf.d/:/etc/mysql/conf.d:ro"
    environment:
      MYSQL_ROOT_PASSWORD: "change_my_password"
      MYSQL_DATABASE: "alfresco"
      MYSQL_USER: "alfresco"
      MYSQL_PASSWORD: "alfresco"
    networks:
      - flat-network
volumes:
  db-data:
  alfresco-data:
networks:
  flat-network:

NginxとMySQLは公式イメージを利用して、Alfresoはビルドしています。
AlfrescoのDockerfileやその他付随するファイルが気になる方は https://github.com/muk-ai/docker-alfresco をご覧下さい。
Alfrescoもイメージを指定した方が速いですが、Community Editionのダウンロード前にユーザー登録があり、
勝手に埋め込むのはよくないと思ったのでこのようになりました。
データベースとAlfrescoのデータはVolumeを使って永続化しています。

動かしてみる

git clone https://github.com/muk-ai/docker-alfresco.git
cd docker-alfresco/
docker-compose up

上手く実行できていれば、ブラウザでport 80にアクセスするとログイン画面が表示されます。
alfresco_login.png
adminのパスワードはalfresco/optionfile.txtalfresco_admin_passwordで指定したものになります。適宜、変更下さい。
optionfile.txtはAlfrescoのインストーラーに参照させるファイルです。
このファイルを変更した時はイメージのリビルド(docker-compose build alfresco)を行ってください。
docker-compose.ymlMYSQL_*環境変数と、optionfile.txtファイルのjdbc_*の値も必要に応じて変更して下さい。

雑感

メモリについて

メモリが2GB未満だとこんなメッセージが出てインストールが失敗します。

1.95 GB の RAM では、テストまたは本番環境で Alfresco を実行するには不十分です。
Alfresco が正しく動作しないことがあり、その場合は正常に機能しません。
サーバーの RAM を最低 2.0 GB にアップグレードしてください。推奨 RAM サイズは 4.0 GB です。

なくなく、t2.mediumを使いました。。
それでもけっこうもっさりしているのでチューニングが必要ですかね。
.soffice.binというプロセスがCPU100%になるのも原因わからず・・・

.soffice.binについて

alfresco/Dockerfileの中で一見、無意味なコマンドを打っているように見えますが

RUN /opt/alfresco/libreoffice/scripts/ctl.sh start || exit 0

このスクリプトの途中で実行される、/opt/alfresco/libreoffice/program/.soffice.binが必ず最初の1回だけ失敗して、
結果としてDockerコンテナが止まるので、この行を追加しました。理由は追えていません。
しかし、.soffice.binが動いてないとOfficeドキュメントのプレビュー機能が動かないのです。

Alfrescoイメージについて

公式イメージのように、adminのパスやらDBのアカウントやらを環境変数で渡すようにできるとよいのですが、
再利用可能なイメージを作るにはAlfresco自体への理解を深めないといけないのと、Docker職人のレベルを上げる必要を感じました。
Alfrescoを作っている人がDockerfileを用意してくれると嬉しいですね。試用までのハードルが下がります。

55
64
4

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
55
64

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?