alfresco-docker-installerを使用してAlfrescoをインストール - alfresco-docker-installerを使用してAlfrescoをインストール - aegif Labo Blog Alfresco
null alfresco-docker-installerを使用してAlfrescoをインストール
こんにちは。今回は使用するバージョンやコンポーネント等を対話的に選択しながらdocker-compose.ymlや設定ファイル等を作成するalfresco-docker-installerというツールをご紹介します。
Alfresco Shareを使うだけであれば acs-deployment で提供されているdocker-compose.yml(Community Editionを使う場合は community-docker-compose.yml )を使う方が楽なんですが、いくつか設定を変えてインストールしたい場合やJavaScript Consoleといったadd-onをインストールしたい場合にはこのツールを使った方が便利です。特に、Alfresco Application Development Framework(ADF)で開発された新しいUIであるAlfresco Content Applicationも一緒にインストールされるので、使ってみたい人にはおすすめです(2022/12/1追記:2022年11月にリリースされた7.3では community-docker-compose.yml でインストールする場合でもAlfresco Content Applicationが含まれてました)。また、インストール時の設定に主にどのようなオプションがあるのか、どのオプションを選択すると設定ファイルのどの部分が変わるのかを確認するために使うのもよいと思います。
使い方は基本的にこちらのREADMEに書いてあるとおりなんですが、以下でご紹介する手順ではYeomanやgenerator-alfresco-docker-installerをnpmでインストールする時にグローバルインストールではなくローカルインストールするように変えています。細かいところではあるんですが、試してみて必要無くなったらフォルダごと削除すればよいのでアンインストールする手間が少し省けます。
手元で試した時の環境は以下のとおりです。Node.js、npm、Docker、Docker Composeは手元の環境に合わせてインストールしておいてください。何年も前のバージョンとかでなければこのとおりのバージョンじゃなくても動くと思います。
- macOS Monterey 12.3.1
- Node.js v16.15.0
- npm 8.5.5
- Docker 20.10.14
- Docker Compose v2.5.1
準備
インストール作業用のフォルダ(ここではalf72とします)を作成し、そのフォルダに移動します。
mkdir alf72
cd alf72
npmでYeomanとgenerator-alfresco-docker-installerをインストールします。
npm install yo
npm install generator-alfresco-docker-installer
alfresco-docker-installerでAlfrescoをインストール
Yeomanでalfresco-docker-installerを起動します。
./node_modules/.bin/yo alfresco-docker-installer
対話的に設定を聞かれるので、値を選択または入力します。ここでは簡単のために全てデフォルト値を選択していきます(何も入力せずにEnterを押していけばデフォルト値が選択されます)。インストール作業用のフォルダごと削除すれば何度でもやり直しは可能なので、まずは全てデフォルト値でインストールしてみて、慣れてきたら設定を変えてみて各種設定ファイルのどこが変わるのかを見比べてみるのもよいかもしれません。
? Which ACS version do you want to use? 7.2
インストールするAlfrescoのバージョンを選択します。6.1, 6.2, 7.0, 7.1, 7.2から選択可能で、デフォルトでは7.2が選択されます(2022年5月時点)。
? How may GB RAM are available for Alfresco (16 is minimum required)? 16
本ツールでは最終的にdocker-compose.ymlが作成されるのですが、そこに定義されるservices(コンテナ)のmem_limit
の大体の総量を指定します(大体の、と書いているのは計算してみたところピッタリ一致するわけではなかったためです。例えばActiveMQは計算から除外されているようでした)。少なくとも16GB割り当てることが推奨されており、デフォルト値も16GBになっています。ただ、試しに半分の8GBを指定して進めてみたところ問題なく起動でき、Shareにログインしてみても特に問題は発生しませんでした。長く使っていくとOutOfMemmory Errorといった不具合が発生するかもしれませんが、例えばメモリが16GBもない場合でも試しにインストールして使ってみることはできそうです。
? Do you want to use HTTPs for Web Proxy? No
リバースプロキシサーバ(Nginx)との通信にHTTPsを使用するかどうかを指定します。デフォルト値はNoになっています。Yesを指定した場合はデフォルトの証明書がconfig/certフォルダに生成されますが、当然ですがこのまま本番で使うことは推奨されていません。また、ここでYesを選択した場合は後続の使用するポートを指定するところで443を指定するのが望ましいと思います。
? What is the name of your server? localhost
サーバのホスト名を入力します。デフォルト値はlocalhostです。
? Choose the password for your admin user admin
adminユーザの初期パスワードを入力します。デフォルト値はadminです。
? What HTTP port do you want to use (all the services are using the same port)? 80
使用するポートを入力します。デフォルト値は80です。root以外でLinuxを使用している場合は1024より大きい値を指定する必要があります。なお、ここまでデフォルト値のまま変更していなければ(HTTPs:No、ホスト名:localhost、ポート:80)、ShareやAlfresco Platformに http://localhost/share や http://localhost/alfresco でアクセスすることになります。
? Do you want to use FTP (port 2121)? No
FTPを使用するかどうかを入力します。デフォルト値はNoです。Yesにした場合はポート2121が使用されるようです。
? Do you want to use MariaDB instead of PostgreSQL? No
PostgreSQLの代わりにMariaDBを使用するかどうかを入力します。デフォルト値はNoです。
? Are you using different languages (this is the most common scenario)? Yes
複数の言語でAlfrescoを使用するかどうかを入力します。デフォルト値はYesです。
? Would you like to use Shared Secret or HTTPs for Alfresco-SOLR communication? secret
Alfresco-Solr間の通信を保護する方法として、HTTPヘッダに特定の値をセットする方法(Shared Secret)か、HTTPsで暗号化する方法のどちらかを選択します。デフォルト値はShared Secretです。Shared Secretについての詳しい説明は以下の記事を参照していただければと思います。
Shared Secret Communication Mode for Repository and SOLR
? Do you want to use credentials for Events service (ActiveMQ)? No
ActiveMQ Alfresco BrokerにアクセスするためのユーザIDとパスワードを設定するかどうかを入力します。デフォルト値はNoです。Yesにした場合は追加でユーザIDとパスワードの入力を求められます。
? Do you want to create an internal SMTP server? No
Alfrescoからメールを送信するためのSMTPサーバを作成するかどうかを入力します。デフォルト値はNoです。
? Do you want to create an internal LDAP server? No
認証連携用のOpenLDAPサーバを作成するかどうかを入力します。デフォルト値はNoです。
? Select the addons to be installed:
以下のadd-onの中からインストールするものを選択します。本筋から外れてしまうのでここでは何も選択せずに進みます。いくつかのadd-onについては今後個別に取り上げてご紹介したいと考えています。
- Google Docs 3.1.0
- JavaScript Console 0.7
- Order of the Bee Support Tools 1.1.0.0
- Share Site Creators 0.0.8
- Simple OCR 2.3.1 (for ACS 6.x)
- Alfresco OCR Transformer 1.0.0 (for ACS 7+)
- ESign Cert 1.8.2
? Are you using a Windows host to run Docker? No
Windowsを使用している場合はYesを入力します。デフォルト値はNoです。
? Do you want to use a start script? No
起動スクリプトを作成する場合はYesを入力します。起動スクリプトがなくても普通にdocker-compose up
で起動できるためデフォルト値はNoになっています。
? Do you want to get the script to create host volumes? No
ホストにvolume用のフォルダを作成するスクリプトを生成するかどうかを入力します。試していませんが、ホストがLinuxの場合は必要になるようです。デフォルト値はNoです。
ここまで入力すると、以下のように必要なファイルが作業フォルダに生成されます(以下は全てデフォルト値を選択した場合の例)。
create .env
create docker-compose.yml
create alfresco/Dockerfile
create alfresco/modules/amps/empty
create alfresco/modules/jars/empty
create share/Dockerfile
create share/web-extension/share-config-custom-dev.xml
create share/modules/amps/empty
create share/modules/jars/empty
create search/Dockerfile
create config/nginx.conf
create config/nginx.htpasswd
生成されたdocker-compose.ymlを見ると、以下のserviceが定義されていることがわかります。
- alfresco(Alfresco Platform)
- transform-core-aio(コンテンツ変換用のservice)
- share(Alfresco Share)
- postgres(PostgreSQL)
- solr6(Solr)
- activemq(ActiveMQ)
- content-app(Alfresco Content Application)
- proxy(Nginx)
Alfrescoの起動
alfresco-docker-installerのREADMEに従って以下のコマンドで起動します。
docker-compose up --build --force-recreate -d
ただ、初回起動時はエラーで途中で止まったりしていないか確認するために最後の-d
オプションは付けずにログを監視した方がよいかもしれません。上記のコマンドを実行した後にdocker-compose logs -f
で監視してもよいと思いますが。
停止する時はdocker-compose stop
、コンテナやネットワークを削除する場合はdocker-compose down
を実行します。2回目以降の起動では、buildし直す必要がない場合はdocker-compose up -d
だけでよいと思います。
起動したら各アプリケーションに以下のURLでアクセスできます(ホスト名やポートをデフォルト値でインストールした場合)。ログイン画面が開いたら id/password:admin/admin でログインします(alfresco-docker-installerでインストールする時にadminのパスワードを変更していた場合はそれを使う)。
Alfresco Content Application( http://localhost/ )
Alfresco Share( http://localhost/share )
Alfresco Platform( http://localhost/alfresco )
Alfresco API Explorer( http://localhost/api-explorer )
おわりに
以上、alfresco-docker-installerを使用したAlfrescoのインストール方法についてご紹介しました。記事は少し長くなってしまいましたが、試してみると思ったより簡単に動かせることがわかると思います。試してみて必要なくなったらインストールしたフォルダ(この例ではalf72)ごと削除してしまえばきれいになるので気軽に使ってみていただければと思います。