DockerでAlfrescoを動かす(samba-ad連携版)

 5年ほど前にAlfrescoとsamba-adを連携させてファイルサーバを作成したんですが、先日までで冗長化構成でsamba-adを構築したのでそいつと連携させてAlfrescoファイルサーバを仕立て上げようというのが今回の最終目的です。

今回は最新ではなくてAlfresco6.2での作業となります。そしてAlfrescoは6以降ではインストーラが提供されておらずDockerイメージが提供されているとのことで、公式のDockerイメージを使おうと思ったんですが、httpsのやり方とかいろんな面で分からないことだらけだったのでnodeでdockerイメージを準備してくれるalfresco-docker-installerを使用してAlfrescoイメージを準備することにしましたよ。例のごとく、参考サイトのコピペつぎはぎですが、やってみました。

連携して動かすには構築したSamba-adは先に立ち上げておく必要があります。

また、かなり大量のコンテナが立ち上がってくるのと、メモリを食うので1台新たに16GBメモリを割り当てたVMを準備し、そちらにDockerをインストールして準備することとします。そのため都合、3台のVMを立ち上げてそこでDockerを動かしています。
↓こんなイメージ







◆作業環境のVersion等

Ubuntu 20.04.3 LTS
Docker version 20.10.8, build 3967b7d
docker-compose version 1.29.1, build c34c88b2


◆Alfresco準備

1.Dockerホストの事前準備

# IPアドレス変更
$ sudo vi /etc/netplan/00-installer-config.yaml
---------------------------
# This is the network config written by 'subiquity'
network:
  ethernets:
    eth0:
      addresses:
      - 192.168.0.30/24        #変更
      gateway4: 192.168.0.1
      nameservers:
        addresses:
        - 192.168.0.10  # Your main-ad
        - 192.168.0.20  # Your sub-ad
  version: 2
---------------------------
$ sudo netplan apply

# ホスト名変更
$ sudo hostnamectl set-hostname alfresco.yourdomain
$ sudo vi /etc/cloud/cloud.cfg
---------------------------
# This will cause the set+update hostname module to not operate (if true)
preserve_hostname: true		#変更
---------------------------

$ sudo vi /etc/hosts
---------------------------
127.0.0.1 localhost
127.0.0.1 alfresco.yourdomain alfresco	#追記
127.0.1.1 alfresco	#修正

# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
---------------------------

# resolvd停止
$ sudo vi /etc/systemd/resolved.conf
----------------------------
[Resolve]
#DNS=
#FallbackDNS=
#Domains=
#LLMNR=no
#MulticastDNS=no
#DNSSEC=no
#DNSOverTLS=no
#Cache=no-negative
#DNSStubListener=yes
DNSStubListener=no	#修正
#ReadEtcHosts=yes
----------------------------

# FireWall設定
$ vi firewall.sh
※以下を新規追加
----------------------------------------------
sudo ufw allow from 192.168.1.0/24 to any port domain
sudo ufw allow from 192.168.1.0/24 to any port kerberos
sudo ufw allow from 192.168.1.0/24 to any port ldap
sudo ufw allow from 192.168.1.0/24 to any port loc-srv
sudo ufw allow from 192.168.1.0/24 to any port 137
sudo ufw allow from 192.168.1.0/24 to any port 138
sudo ufw allow from 192.168.1.0/24 to any port 139
sudo ufw allow from 192.168.1.0/24 to any port 445
sudo ufw allow from 192.168.1.0/24 to any port 8080
sudo ufw allow from 192.168.1.0/24 to any port mail
sudo ufw allow from 192.168.1.0/24 to any port 8100
sudo ufw allow from 192.168.1.0/24 to any port 7070
----------------------------------------------
$ chmod 755 firewall.sh
$ ./firewall.sh
$ sudo ufw status
状態: アクティブ

To                         Action      From
--                         ------      ----
22/tcp                     ALLOW       Anywhere
80/tcp                     ALLOW       Anywhere
443/tcp                    ALLOW       Anywhere
53                         ALLOW       192.168.0.0/24
88                         ALLOW       192.168.0.0/24
389                        ALLOW       192.168.0.0/24
135/tcp                    ALLOW       192.168.0.0/24
137                        ALLOW       192.168.0.0/24
138                        ALLOW       192.168.0.0/24
139                        ALLOW       192.168.0.0/24
445                        ALLOW       192.168.0.0/24
8080                       ALLOW       192.168.0.0/24
25/tcp                     ALLOW       192.168.0.0/24
8100                       ALLOW       192.168.0.0/24
7070                       ALLOW       192.168.0.0/24
22/tcp (v6)                ALLOW       Anywhere (v6)
80/tcp (v6)                ALLOW       Anywhere (v6)
443/tcp (v6)               ALLOW       Anywhere (v6)

2.Dockerファイル類の準備

# 作業用ディレクトリ作成
$ cd
$ mkdir alfresco
$ cd alfresco/

# nodeインストール
$ sudo apt -y install nodejs npm
$ sudo npm install n -g
※nパッケージインストール後に再ログイン
$ sudo n stable
$ sudo apt purge -y nodejs npm
$ exec $SHELL -l
$ node -v
v14.17.5
$ npm -v
6.14.14
$ sudo npm install -g yo

# ツールでdocker関連ファイル生成
$ sudo npm install --global generator-alfresco-docker-installer
$ yo alfresco-docker-installer

Installed generators don't need the "generator-" prefix.
In the future, run yo alfresco-docker-installer instead!

     DOCKER COMPOSE ALFRESCO

? Which ACS version do you want to use? 6.2
? How may GB RAM are available for Alfresco (12 is minimum required)? 12
? Do you want to use HTTPs for Web Proxy? Yes
? What is the name of your server? 192.168.0.30
? What HTTPs port do you want to use (all the services are using the same port)?
 443
? Do you want to use FTP (port 2121)? No
? Do you want to use MariaDB instead of PostgreSQL? No
? Are you using different languages (this is the most common scenario)? Yes
? Do you want to create an internal SMTP server? No
? Do you want to create an internal LDAP server? No
? Select the addons to be installed:
 ◯ Google Docs 3.1.0
 ◯ JavaScript Console 0.6
 ◯ Order of the Bee Support Tools 1.0.0.0
 ◯ Share Site Creators 0.0.7
 ◯ Simple OCR 2.3.1
?◯ ESign Cert 1.8.2
? Are you using a Windows host to run Docker? No
? Do you want to use a start script? (y/N) N

# ユーザ追加、永続化ディレクトリ追加(スクリプト化して実行)
$ vi settingalf.sh
--------------------------------------
#!/bin/bash

SCRIPT_DIR=$(cd $(dirname $0); pwd)

echo '*** start setting user and directory ****'

sudo useradd -u 33007 solr
mkdir data logs
mkdir data/postgres-data
sudo chown -R 999 data/postgres-data
mkdir data/solr-data
sudo chown -R 33007 data/solr-data
mkdir logs/postgres
sudo chown -R 999 logs/postgres

echo '**** setting fonts ****'

sudo apt install -y fonts-ipafont fonts-ipaexfont
mkdir libreoffice-fonts-data
sudo cp /usr/share/fonts/opentype/ipafont-gothic/ipag.ttf $SCRIPT_DIR/libreoffice-fonts-data
sudo cp /usr/share/fonts/opentype/ipafont-gothic/ipagp.ttf $SCRIPT_DIR/libreoffice-fonts-data
sudo cp /usr/share/fonts/opentype/ipafont-mincho/ipam.ttf $SCRIPT_DIR/libreoffice-fonts-data
sudo cp /usr/share/fonts/opentype/ipafont-mincho/ipamp.ttf $SCRIPT_DIR/libreoffice-fonts-data

echo '**** setting end!! ****'
--------------------------------------
$ chmod 755 settingalf.sh
$ ./settingalf.sh

3.Dockerファイル編集

#  DockerFileの編集(AD連携)
$ vi alfresco/Dockerfile
---------------------------------------------------------------------
ARG ALFRESCO_TAG
FROM alfresco/alfresco-content-repository-community:${ALFRESCO_TAG}

ARG TOMCAT_DIR=/usr/local/tomcat

USER root

#↓ ここから追記

# Add services configuration to alfresco-global.properties
ARG POSTGRE_USER
ARG POSTGRE_PASSWD
ARG POSTGRE_DB_NAME
ARG AD_SERVER
ARG AD_SERVER_IP
ARG NGINX_SERVER_NAME
ARG MAIL_HOST
ARG MAIL_USERNAME
ARG MAIL_PASSWORD
ARG MAIL_FROM
ARG MAIL_TEST_TO
ARG AD_SERVER
ARG AD_USER
ARG AD_DOMAIN
ARG AD_GLDOMAIN
ARG AD_PASSWD

RUN echo -e "\n\
db.username=${POSTGRE_USER}\n\
db.password=${POSTGRE_PASSWD}\n\
db.name=${POSTGRE_DB_NAME}\n\
system.serverMode=production\n\
\n\
#Attack protection\n\
authentication.protection.enabled=true\n\
authentication.protection.limit=5\n\
authentication.protection.periodSeconds=15\n\
\n\
#Trashcan Cleaner\n\
system.content.orphanProtectDays=14\n\
trashcan-cleaner.cron=0 30 * * * ?\n\
trashcan-cleaner.keepPeriod=P1D\n\
trashcan-cleaner.deleteBatchCount=1000\n\
\n\
#HTTPS NGIX PROXY SITE NAME\n\
#alfresco.context=alfresco\n\
#alfresco.host=${NGINX_SERVER_NAME}\n\
#alfresco.port=443\n\
#alfresco.protocol=https\n\
#share.context=share\n\
#share.host=${NGINX_SERVER_NAME}\n\
#share.port=443\n\
#share.protocol=https\n\
\n\
### E-mail site invitation setting ###\n\
notification.email.siteinvite=true\n\
\n\
### OUTbound smtp ###\n\
mail.host=${MAIL_HOST}\n\
mail.port=587\n\
mail.username=${MAIL_USERNAME}\n\
mail.password=${MAIL_PASSWORD}\n\
mail.encoding=UTF-8\n\
mail.from.default=${MAIL_FROM}\n\
mail.from.enabled=false\n\
mail.smtp.starttls.enable=false\n\
mail.smtp.auth=true\n\
mail.smtp.timeout=30000\n\
mail.testmessage.send=false\n\
mail.smtp.debug=false\n\
mail.testmessage.to=${MAIL_TEST_TO}\n\
\n\
### Auth and sync samba-ad ###\n\
authentication.chain=ldap-ad1:ldap-ad\n\
ntlm.authentication.sso.enabled=false\n\
ldap.authentication.active=true\n\
ldap.authentication.userNameFormat=%s@${AD_DOMAIN}.${AD_GLDOMAIN}\n\
ldap.authentication.java.naming.provider.url=ldap://${AD_SERVER}:389\n\
ldap.authentication.defaultAdministratorUserNames=${AD_USER}\n\
## First and last name reversal ###\n\
ldap.synchronization.active=true\n\
ldap.synchronization.java.naming.security.authentication=simple\n\
ldap.synchronization.java.naming.security.principal=${AD_USER}@${AD_DOMAIN}.${AD_GLDOMAIN}\n\
ldap.synchronization.java.naming.security.credentials=${AD_PASSWD}\n\
\n\
ldap.synchronization.userSearchBase=cn\=Users,dc\=${AD_DOMAIN},dc\=${AD_GLDOMAIN}\n\
ldap.synchronization.personQuery=(&(objectclass\=user)(userAccountControl\:1.2.840.113556.1.4.803\:\=512))\n\
ldap.synchronization.personDifferentialQuery=(&(objectclass\=user)(userAccountControl\:1.2.840.113556.1.4.803\:\=512)(!(whenChanged<\={0})))\n\
ldap.synchronization.userFirstNameAttributeName=sn\n\
ldap.synchronization.userLastNameAttributeName=givenName\n\
ldap.synchronization.userEmailAttributeName=mail\n\
ldap.synchronization.groupSearchBase=cn\=Users,dc\=${AD_DOMAIN},dc\=${AD_GLDOMAIN}\n\
ldap.synchronization.groupQuery=(&(objectclass\=group)(!(isCriticalSystemObject=true)))\n\
ldap.synchronization.groupDifferentialQuery=(&(objectclass\=group)(!(isCriticalSystemObject=true))(!(whenChanged<\={0})))\n\
ldap.synchronization.groupDisplayNameAttributeName=description\n\
ldap.synchronization.modifyTimestampAttributeName=whenChanged\n\
ldap.synchronization.timestampFormat=yyyyMMddHHmmss'.0Z'\n\
" >> $TOMCAT_DIR/shared/classes/alfresco-global.properties

#↑ ここまで追記

# Install modules and addons
RUN mkdir -p $TOMCAT_DIR/amps
COPY modules/amps $TOMCAT_DIR/amps
COPY modules/jars $TOMCAT_DIR/webapps/alfresco/WEB-INF/lib

RUN java -jar $TOMCAT_DIR/alfresco-mmt/alfresco-mmt*.jar install \
    $TOMCAT_DIR/amps $TOMCAT_DIR/webapps/alfresco -directory -nobackup -force

# Install api-explorer webapp for REST API
ARG API_EXPLORER_TAG
ENV API_EXPLORER_TAG $API_EXPLORER_TAG
RUN yum -y update && \
 yum -y install wget && \
 yum clean all && \
 set -x \
    && wget https://artifacts.alfresco.com/nexus/service/local/repositories/releases/content/org/alfresco/api-explorer/${API_EXPLORER_TAG}/api-explorer-${API_EXPLORER_TAG}.war \
    -O /usr/local/tomcat/webapps/api-explorer.war --no-check-certificate

# DATABASE
ARG DB
ENV DB $DB

# Install mysql JDBC driver
RUN if [ "$DB" == "mariadb" ] ; then \
    set -x \
        && yum install -y wget \
        && yum clean all \
        && wget -P /tmp/ http://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-8.0.13.tar.gz \
        && tar xvf /tmp/mysql-connector-java-8.0.13.tar.gz -C /tmp/ \
        && cp /tmp/mysql-connector-java-8.0.13/mysql-connector-java-8.0.13.jar $TOMCAT_DIR/lib/ \
        && rm -rf /tmp/mysql-connector-java-8.0.13.tar.gz /tmp/mysql-connector-java-8.0.13; \
fi
--------------------------------------------------

# .envファイル編集
$ vi .env
-----------------------------------------------------------
# Docker Image versions
ALFRESCO_CE_TAG=6.2.0-ga
SEARCH_CE_TAG=2.0.1
SHARE_TAG=6.2.0
ACA_TAG=master
POSTGRES_TAG=13.1             #変更している
API_EXPLORER_TAG=6.2.0
TRANSFORM_ENGINE_TAG=2.1.0
ACTIVEMQ_TAG=5.16.1           #変更している

# Server properties
SERVER_NAME=192.168.0.30

# Setting alfresco-global.properties
POSTGRE_USER=alfresco
POSTGRE_PASSWD=alfresco
POSTGRE_DB_NAME=alfresco
NGINX_SERVER_NAME=alfresco.yourdomain
MAIL_HOST=youreserver
MAIL_USERNAME=youruser
MAIL_PASSWORD=yourapassword
MAIL_FROM=alfresco@yourdomain
MAIL_TEST_TO=test@yourdomain
AD_SERVER=yoursamba-ad
AD_USER=Administrator
AD_DOMAIN=yourdomain_front
AD_GLDOMAIN=yourdomain_bak
AD_PASSWD=yourpasswd
-----------------------------------------------------------

#  docker-compose.yml 修正(タイムゾーンと再起動後の設定、フォントパスの追加)
$ vi docker-compose.yml
-----------------------------------------------------------
# Using version 2 as 3 does not support resource constraint options (cpu_*, mem_* limits) for non swarm mode in Compose
version: "2"

services:
    alfresco:
        build:
          context: ./alfresco
          args:
            ALFRESCO_TAG: ${ALFRESCO_CE_TAG}
            DB: postgres
            API_EXPLORER_TAG: ${API_EXPLORER_TAG}
            POSTGRE_USER: ${POSTGRE_USER}
            POSTGRE_PASSWD: ${POSTGRE_PASSWD}
            POSTGRE_DB_NAME: ${POSTGRE_DB_NAME}
            AD_SERVER: ${AD_SERVER}
            AD_SERVER_IP: ${SERVER_NAME}
            NGINX_SERVER_NAME: ${NGINX_SERVER_NAME}
            MAIL_HOST: ${MAIL_HOST}
            MAIL_USERNAME: ${MAIL_USERNAME}
            MAIL_PASSWORD: ${MAIL_PASSWORD}
            MAIL_FROM: ${MAIL_FROM}
            MAIL_TEST_TO: ${MAIL_TEST_TO}
            AD_SERVER: ${AD_SERVER}
            AD_USER: ${AD_USER}
            AD_DOMAIN: ${AD_DOMAIN}
            AD_GLDOMAIN: ${AD_GLDOMAIN}
            AD_PASSWD: ${AD_PASSWD}
        mem_limit: 4416m
        depends_on:
            - postgres
        environment:
            JAVA_OPTS : '
                -Ddb.driver=org.postgresql.Driver
                -Ddb.username=alfresco
                -Ddb.password=alfresco
                -Ddb.driver=org.postgresql.Driver
                -Ddb.url=jdbc:postgresql://postgres:5432/alfresco
                -Dsolr.host=solr6
                -Dsolr.port=8983
                -Dsolr.secureComms=none
                -Dsolr.baseUrl=/solr
                -Dindex.subsystem.name=solr6
                -Dalfresco.host=${SERVER_NAME}
                -Dalfresco.port=443
                -Dalfresco.protocol=https
                -Dshare.host=${SERVER_NAME}
                -Dshare.port=443
                -Dshare.protocol=https
                -Daos.baseUrlOverwrite=https://${SERVER_NAME}/alfresco/aos
                -Dmessaging.broker.url="failover:(nio://activemq:61616)?timeout=3000&jms.useCompression=true"
                -Ddeployment.method=DOCKER_COMPOSE
                -Dcsrf.filter.enabled=false
                -Dopencmis.server.override=true
                -Dopencmis.server.value=https://${SERVER_NAME}:443
                -Dlocal.transform.service.enabled=true
                -DlocalTransform.pdfrenderer.url=http://alfresco-pdf-renderer:8090/
                -DlocalTransform.imagemagick.url=http://imagemagick:8090/
                -DlocalTransform.libreoffice.url=http://libreoffice:8090/
                -DlocalTransform.tika.url=http://tika:8090/
                -DlocalTransform.misc.url=http://transform-misc:8090/
                -Dlegacy.transform.service.enabled=true
                -Dalfresco-pdf-renderer.url=http://alfresco-pdf-renderer:8090/
                -Djodconverter.url=http://libreoffice:8090/
                -Dimg.url=http://imagemagick:8090/
                -Dtika.url=http://tika:8090/
                -Dtransform.misc.url=http://transform-misc:8090/
                -Dcsrf.filter.enabled=false
                -Dalfresco.restApi.basicAuthScheme=true
                -Dauthentication.protection.enabled=false
                -XX:+UseG1GC -XX:+UseStringDeduplication
                -Dgoogledocs.enabled=false
                -Xms3904m -Xmx3904m
            '
            TZ: Asia/Tokyo
        volumes:
            - ./data/alf-repo-data:/usr/local/tomcat/alf_data
            - ./logs/alfresco:/usr/local/tomcat/logs
        restart: always

    alfresco-pdf-renderer:
        image: alfresco/alfresco-pdf-renderer:${TRANSFORM_ENGINE_TAG}
        mem_limit: 512m
        environment:
            JAVA_OPTS: " -Xms256m -Xmx512m"
            TZ: Asia/Tokyo
        ports:
            - 8090:8090
        restart: always

    imagemagick:
        image: alfresco/alfresco-imagemagick:${TRANSFORM_ENGINE_TAG}
        mem_limit: 512m
        environment:
            JAVA_OPTS: " -Xms256m -Xmx512m"
            TZ: Asia/Tokyo
        ports:
            - 8091:8090
        restart: always

    libreoffice:
        image: alfresco/alfresco-libreoffice:${TRANSFORM_ENGINE_TAG}
        mem_limit: 512m
        environment:
            JAVA_OPTS: " -Xms256m -Xmx512m"
            TZ: Asia/Tokyo
        ports:
            - 8092:8090
        volumes:
            - ./libreoffice-fonts-data:/opt/libreoffice6.1/share/fonts/truetype/
        restart: always

    tika:
        image: alfresco/alfresco-tika:${TRANSFORM_ENGINE_TAG}
        mem_limit: 512m
        environment:
            JAVA_OPTS: " -Xms256m -Xmx512m"
            TZ: Asia/Tokyo
        ports:
            - 8093:8090
        restart: always

    transform-misc:
        image: alfresco/alfresco-transform-misc:${TRANSFORM_ENGINE_TAG}
        mem_limit: 512m
        environment:
            JAVA_OPTS: " -Xms256m -Xmx512m"
            TZ: Asia/Tokyo
        ports:
            - 8094:8090
        restart: always

    share:
        build:
          context: ./share
          args:
            SHARE_TAG: ${SHARE_TAG}
            SERVER_NAME: ${SERVER_NAME}
        mem_limit: 1104m
        environment:
            REPO_HOST: "alfresco"
            REPO_PORT: "8080"
            CSRF_FILTER_REFERER: "https://${SERVER_NAME}/.*"
            CSRF_FILTER_ORIGIN: "https://${SERVER_NAME}"
            JAVA_OPTS: "
                -Xms976m -Xmx976m
                -Dalfresco.context=alfresco
                -Dalfresco.protocol=http
                "
            TZ: Asia/Tokyo
        volumes:
            - ./logs/share:/usr/local/tomcat/logs
        restart: always

    postgres:
        image: postgres:${POSTGRES_TAG}
        mem_limit: 1104m
        environment:
            - POSTGRES_PASSWORD=${POSTGRE_PASSWD}
            - POSTGRES_USER=${POSTGRE_USER}
            - POSTGRES_DB=${POSTGRE_DB_NAME}
            - TZ=Asia/Tokyo
        command: "
            postgres
              -c max_connections=200
              -c logging_collector=on
              -c log_min_messages=LOG
              -c log_directory=/var/log/postgresql"
        ports:
            - 5432:5432
        volumes:
            - ./data/postgres-data:/var/lib/postgresql/data
            - ./logs/postgres:/var/log/postgresql
        restart: always

    solr6:
        build:
          context: ./search
          args:
            SEARCH_TAG: $SEARCH_CE_TAG
            SOLR_HOSTNAME: solr6
            ALFRESCO_HOSTNAME: alfresco
            ALFRESCO_COMMS: none
            CROSS_LOCALE: "true"
        mem_limit: 2208m
        environment:
            TZ: Asia/Tokyo
            #Solr needs to know how to register itself with Alfresco
            SOLR_ALFRESCO_HOST: "alfresco"
            SOLR_ALFRESCO_PORT: "8080"
            #Alfresco needs to know how to call solr
            SOLR_SOLR_HOST: "solr6"
            SOLR_SOLR_PORT: "8983"
            #Create the default alfresco and archive cores
            SOLR_CREATE_ALFRESCO_DEFAULTS: "alfresco,archive"
            SOLR_JAVA_MEM: "-Xms1952m -Xmx1952m"
            SOLR_OPTS: "
                -XX:NewSize=848m
                -XX:MaxNewSize=848m
            "
        volumes:
            - ./data/solr-data:/opt/alfresco-search-services/data
        restart: always

    activemq:
        image: alfresco/alfresco-activemq:${ACTIVEMQ_TAG}
        mem_limit: 1g
        ports:
            - 8161:8161 # Web Console
            - 5672:5672 # AMQP
            - 61616:61616 # OpenWire
            - 61613:61613 # STOMP
        environment:
            TZ: Asia/Tokyo
        restart: always

    content-app:
        image: alfresco/alfresco-content-app:${ACA_TAG}
        mem_limit: 256m
        depends_on:
            - alfresco
            - share
        environment:
            TZ: Asia/Tokyo
        restart: always

    # HTTP proxy to provide HTTP Default port access to services
    # SOLR API and SOLR Web Console are protected to avoid unauthenticated access
    proxy:
        image: angelborroy/acs-proxy:1.2.0
        mem_limit: 128m
        environment:
            - PORT=443
            - PROTOCOL=https
            - AZ=Asia/Tokyo
        depends_on:
            - alfresco
            - solr6
            - share
            - content-app
        volumes:
            - ./config/nginx.htpasswd:/etc/nginx/conf.d/nginx.htpasswd
            - ./config/cert/localhost.cer:/etc/nginx/localhost.cer
            - ./config/cert/localhost.key:/etc/nginx/localhost.key
        ports:
            - 443:443
        restart: always
-----------------------------------------------------------

#  Alfresco起動(起動までに10分以上かかる)
$ docker-compose up -d

◆Windows側作業

作業するPCはあらかじめドメインに参加しておく

1.DNSの追加

・WindowsにRSATをインストールしsamba-adのDNS上にalfrescoサーバの仮想マシンのIPを名前解決できるように追加する。











2.Alfrescoサーバから証明書をエクスポート

・1で追加したホスト名でalfrescoサーバにアクセスし、証明書をダウンロードする。(開発ツールを立ち上げて、セキュリティから証明書を表示し「ファイルにコピー」










・エクスポートウィザードに従ってDER形式で保存する















3.証明書のインポート
保存した証明書をダブルクリックしてインポートする。
















・今回は該当するPCに証明書を組み込む
















・インポート先は「信頼されたルート証明書」とする














4.ネットワークドライブにWebDAVのURL割当

・エクスプローラからネットワークドライブを割当する












・フォルダーにalfrescoサーバのaosフォルダを指定する
https://alfrescoサーバホスト名/alfresco/aos
完了をクリックすると認証情報が表示されるので、ADのログイン情報を入力する












ちなみにalfrescoの構築が完了した後に、WindowsからWebDAVする際にかなり嵌りました。ホスト名のSSL証明書じゃないとWebDAVをエクスプローラから参照できないというところで相当に時間を溶かしました。くれぐれもドメインくっつけたFQDNの証明書インストールをしない様にです。それでかなり悩みました。

そしてこれでようやく完成です。AlfrescoとAD連携させるとADの情報と連携してくれるのでユーザ追加しなくていいのがかなり楽です。まぁVersionUPしているのでどの程度変わっているかとかを確認していければと思います。次はコンテナで上げているRedmineもSamba-adに連携させて、プリザンターを入れてそいつともsamba-ad連携させたいですね。
それとsamba-ad連携できるグループウェアとかチャットツールあれば試してみたい。

しかしながら以前はサーバでチマチマとやっていたのが最近はDockerでサクッとできちゃうんですなぁ。(能力が低いのでさほど手間は変わらないですが・・・・


◆参考サイト

・全般


・AD連携関連


・Docker-Compose関連


・Alfrescoメール通知


・WindowsからのWebDAV接続


一応GitHub上げました。

コメント

このブログの人気の投稿

証券外務員1種勉強(計算式暗記用メモ)

GASでGoogleDriveのサブフォルダとファイル一覧を出力する

マクロ経済学(IS-LM分析)