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



  • No labels