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 dms/prod/dms_postgresql docker build -t asia.gcr.io/pi-devops/dms_postgresql:1.0 . |
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 . |
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 . |
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 . |
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 . |
In this environment all the containers will be launched in distinct docker network (it will be called 'dms' in this doc)
docker network create --driver bridge dms |
After creating the network, we're starting our postgres and elasticsearch containers. No need to provide ports with '-p' option. Inside the internal network all the ports exposed in Dockerfile are accessible without extra options.
docker run -v /home/nuxeo/docker/postgres_backup:/backup -v /home/nuxeo/docker/postgres_data:/var/lib/postgresql/data --net=dms --name postgres -d asia.gcr.io/pi-devops/dms_postgresql:1.0 |
Official image v.1.4.4 will be used (it is used in official nuxeo docker image, but it's not available now via docker hub)
Run command:
docker run -v /home/nuxeo/docker/elastic:/usr/share/elasticsearch/data --name=elastic --net=dms elasticsearch:1.4.4 |
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 patricia.db.jdbcDriver=com.microsoft.sqlserver.jdbc.SQLServerDriver nuxeo.db.host=postgres nuxeo.db.port=5432 nuxeo.db.name=nuxeo nuxeo.db.user=nuxeo nuxeo.db.password=nuxeop elasticsearch.addressList=localhost:9300 elasticsearch.clusterName=elasticsearch elasticsearch.indexName=nuxeo elasticsearch.indexNumberOfShards=5 elasticsearch.indexNumberOfReplicas=0 |
In dynamic part user determines the memory consumption of nuxeo and can provide new options or override old ones.
Dynamic part for nux7:
JAVA_OPTS=$JAVA_OPTS -Xms1024m -Xmx2048m 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 |
If you want to use other credentials for postgres, for example, you should just add this option to your nuxeo.conf, so it will look that way:
JAVA_OPTS=$JAVA_OPTS -Xms1024m -Xmx2048m 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 nuxeo.db.name=nuxeodm nuxeo.db.user=nuxeodm |
Then docker just concatenates 2 parts together on container start.
Run command, we need to add '-p' option, because we will use this port from external network:
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 |
docker run -p 9080:9080 -v /home/nuxeo/docker/conf:/etc/nuxeo --net=dms -d -name cb asia.gcr.io/pi-devops/dms_casebrowser:1.9.6.2 |