Build DMS PostgreSQL image
PostgreSQL is used by Nuxeo server, which is packaged in a separate Docker container. As the first step we need to build this PostgreSQL docker container.
For the build, next command must be executed from the folder with Dockerfile of PostgreSQL image.
cd work/dms/prod/dms_postgresql docker build -t asia.gcr.io/pi-devops/dms_postgresql:1.0 .
docker run -p 5432:5432 -v /home/nuxeo/docker/postgres_backup:/backup -v /home/nuxeo/docker/postgres_data:/var/lib/postgresql/data --net=host --name postgres -d asia.gcr.io/pi-devops/dms_postgresql:1.0
Build DMS ElasticSearch image
Official one will be used
Run command:
docker run -p 9200:9200 -p 9300:9300 -v /home/nuxeo/docker/elastic:/usr/share/elasticsearch/data --name=elastic elasticsearch:1.7.5
Build DMS Nuxeo 7.3 image
The image contains Nuxeo 7.3 with updated entrypoint. To build this image, please use the commands below:
cd dms/base/nuxeo-7.3 docker build -t asia.gcr.io/pi-devops/nuxeo:7.3 .
Build DMS Nuxeo base image
To build this image, please use the commands below:
cd dms/base/dms_nuxeo_base docker build -t asia.gcr.io/pi-devops/dms_nuxeo_base:1.0 .
Build DMS Nuxeo image
This image is the actual production image which contains PI nuxeo module, nuxeo-dam and nuxeo-drive plugins deployed in it. This image can be connected to the PostgreSQL container and the ElasticSearch container when running. The version should match the version of pi-extended-dms release installed in the image.
To build this image, please run the commands below:
cd dms/prod/dms_nuxeo docker build -t asia.gcr.io/pi-devops/dms_nuxeo:1.9.6.2 .
In all configurations we have a static version that not changes in different environments and dynamic one (credentials to connect databases), so i've added the static part to the container.
Static part:
JAVA_OPTS = -Dfile.encoding=UTF-8 -Dmail.mime.decodeparameters=true -Dmail.mime.decodefilename=true -Djava.util.Arrays.useLegacyMergeSort=true nuxeo.vcs.blocking-timeout-millis=1000 nuxeo.vcs.max-pool-size=200 elasticsearch.override.pageproviders=default_search,pi_elastic_search launcher.start.max.wait = 600 nuxeo.path.segment.maxsize=256 nuxeo.templates=postgresql,drive,drive,drive,pi-nx-repository nuxeo.wizard.done=true
In dynamic part user determines the memory consumption of nuxeo and credentials for services.
Dynamic part for nux5:
JAVA_OPTS=$JAVA_OPTS -Xms1024m -Xmx2048m nuxeo.db.name=nuxeo nuxeo.db.user=nuxeo nuxeo.db.password=nuxeop patricia.db.jdbcDriver=com.microsoft.sqlserver.jdbc.SQLServerDriver patricia.db.jdbcUrl=jdbc:sqlserver://10.120.5.51:1433;databaseName=patricia_demo_2;integratedSecurity=false patricia.db.username=sa patricia.db.password=Skype#567 elasticsearch.addressList=localhost:9300 elasticsearch.clusterName=elasticsearch elasticsearch.indexName=nuxeo elasticsearch.indexNumberOfReplicas=0
Then docker just concatenates 2 parts together on container start.
Run command:
docker run -p 8080:8080 -v /home/nuxeo/docker/nuxeo:/var/lib/nuxeo/data -v /home/nuxeo/docker/conf:/etc/nuxeo --net=host --name nuxeo -d asia.gcr.io/pi-devops/dms_nuxeo:1.9.6.2
Build DMS Casebrowser image
To build this image, please run the commands below:
cd dms/prod/dms_casebrowser docker build -t asia.gcr.io/pi-devops/dms_casebrowser:1.9.6.2 .
Run command:
docker run -p 9080:9080 -v /home/nuxeo/docker/conf:/etc/nuxeo --net=host -d -name cb asia.gcr.io/pi-devops/dms_casebrowser:1.9.6.2