Start
docker-compose up -d
Stop
docker-compose down
Update Confluence
docker-compose up -d --build --force-recreate --remove-orphans wiki-server
Configure
initial docer-compose file
docker-compose.yml
version: "2.0" services: wiki-lb: image: nginx ports: - 80:80 - 443:443 volumes: - /docker/etc/nginx:/etc/nginx - /docker/etc/ssl:/etc/ssl:ro wiki-server: image: atlassian/confluence-server ports: - 8090:8090 - 8091:8091 environment: - POSTGRES_INITDB_ARGS="--encoding=UTF8 --lc-collate='en_US.UTF-8' - CATALINA_CONNECTOR_PROXYNAME=wiki.example.com - CATALINA_CONNECTOR_PROXYPORT=443 - CATALINA_CONNECTOR_SCHEME=https - CATALINA_CONNECTOR_SECURE=true - CATALINA_OPTS=-Xms1g -Xmx4g - JVM_MINIMUM_MEMORY=1024m - JVM_MAXIMUM_MEMORY=4096m - CONFLUENCE_CONFIG_PROPERTY1=confluence.setup.server.id - CONFLUENCE_CONFIG_VALUE1=xxxx-xxxx-xxxx-xxxx - ATL_TOMCAT_MAXTHREADS=35 volumes: - /docker/var/atlassian/application-data/confluence:/var/atlassian/application-data/confluence depends_on: - wiki-lb - wiki-db wiki-db: image: postgres:10 ports: - 5432:5432 environment: - POSTGRES_USER=user - POSTGRES_PASSWORD=password - POSTGRES_ENCODING=UTF8 - POSTGRES_COLLATE=en_US.UTF-8 - PGDATA=/var/lib/postgresql/data/pgdata volumes: - /docker/var/lib/postgresql/data:/var/lib/postgresql/data
after couple of update iterations
version: "2.0" services: wiki-lb: image: nginx restart: always ports: - 80:80 - 443:443 volumes: - /docker/etc/nginx:/etc/nginx - /docker/etc/ssl:/etc/ssl:ro wiki-server: image: atlassian/confluence-server:7.18.1 restart: unless-stopped ports: - 8090:8090 - 8091:8091 environment: - ATL_PROXY_NAME=wiki.example.com - ATL_PROXY_PORT=443 - ATL_TOMCAT_PORT=8090 - ATL_TOMCAT_SCHEME=https - ATL_TOMCAT_MAXTHREADS=48 - ATL_TOMCAT_MINSPARETHREAD=6 - ATL_TOMCAT_MAXHTTPHEADERSIZE=8192 - ATL_DB_POOLMAXSIZE=125 - ATL_DB_TYPE=postgresql - ATL_JDBC_URL=jdbc:postgresql://127.0.0.1:5432/confluence - ATL_JDBC_USER=database1user - ATL_JDBC_PASSWORD=database1password - ATL_LICENSE_KEY=AAAB...//YOUR_LICENSE_KEY//..ii - JVM_MINIMUM_MEMORY=2048m - JVM_MAXIMUM_MEMORY=8192m - CONFLUENCE_CONFIG_PROPERTY1=confluence.setup.server.id - CONFLUENCE_CONFIG_VALUE1=XXXX-XXXX-XXXX-XXXX volumes: - /docker/var/atlassian/application-data/confluence:/var/atlassian/application-data/confluence depends_on: - wiki-lb - wiki-db wiki-db: image: postgres:10.21 restart: always ports: - 5432:5432 environment: - POSTGRES_USER=database1user - POSTGRES_PASSWORD=database1password - POSTGRES_ENCODING=UTF8 - POSTGRES_COLLATE=en_US.UTF-8 - PGDATA=/var/lib/postgresql/data/pgdata volumes: - /docker/var/lib/postgresql/data:/var/lib/postgresql/data
nginx config
/docker/etc/nginx/sites-enabled/wiki
server { listen 80; server_name wiki.example.com; add_header Strict-Transport-Security 'max-age=31536000; includeSubDomains; preload;'; return 301 https://$server_name$request_uri; location / { } } server { listen 443 ssl http2; server_name wiki.example.com; ssl on; ssl_certificate /etc/ssl/private/wiki.example.com.pem; ssl_certificate_key /etc/ssl/private/wiki.example.com.key; ssl_protocols TLSv1.3 TLSv1.2; ssl_ciphers "EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH+aRSA+RC4 EECDH EDH+aRSA HIGH !RC4 !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS"; ssl_session_cache shared:SSL:10m; ssl_session_timeout 5m; ssl_prefer_server_ciphers on; ssl_stapling on; ssl_stapling_verify on; ssl_trusted_certificate "/etc/ssl/certs/ca-certs.pem"; resolver 1.1.1.1 8.8.4.4 valid=300s; resolver_timeout 5s; location /.well-known { alias /var/www/$server_name/.well-known; } location / { proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-Server $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://127.0.0.1:8090; } }
Confluence config
/docker/var/atlassian/application-data/confluence/confluence.cfg.xml
<property name="hibernate.connection.driver_class">org.postgresql.Driver</property> <property name="hibernate.connection.password">password</property> <property name="hibernate.connection.url">jdbc:postgresql://192.168.0.1:5432/confluence</property> <property name="hibernate.connection.username">user</property>
postgresql config
/docker/var/lib/postgresql/data/pgdata/postgresql.conf
listen_addresses = '*' max_connections = 100 # (change requires restart) shared_buffers = 128MB # min 128kB dynamic_shared_memory_type = posix # the default is the first option log_timezone = 'UTC' datestyle = 'iso, mdy' timezone = 'UTC' lc_messages = 'en_US.utf8' # locale for system error message lc_monetary = 'en_US.utf8' # locale for monetary formatting lc_numeric = 'en_US.utf8' # locale for number formatting lc_time = 'en_US.utf8' # locale for time formatting default_text_search_config = 'pg_catalog.english'
/docker/var/lib/postgresql/data/pgdata/pg_hba.conf
local all all trust host all all 127.0.0.1/32 trust host all all ::1/128 trust local replication all trust host replication all 127.0.0.1/32 trust host replication all ::1/128 trust host all all all md5
Confluence backup
rm -f /docker/var/atlassian/application-data/confluence/backups/backup-2* tar -czvf /tmp/confluence-`date --iso`.tar.gz /docker/var/atlassian/application-data/confluence/ docker exec root_wiki-db_1 pg_dump -h localhost -p 5432 -U dbuser confluence >/tmp/confluence-`date --iso`.sql
Restart after configuration update
docker-compose down ;docker-compose up -d --build --force-recreate; docker-compose logs --follow