Docker.md 8.7 KB

Building custom Docker image

This is only for developers. For normal users, do not add these options, just start with docker compose up -d

This only builds wekan-app Docker image, where is Node.js 14.x and all Javascript code. This does not build wekan-db MongoDB image, that usually does not require modifications.

Alpine Linux does not work properly with current Meteor 2 based WeKan. Ubuntu works, and has newest security fixes.

Only amd64 currently works. Currently used Node.js 14.x segfaults at arm64 and s390x. Only Node.js 14.x is compatible with current version of Meteor 2 based WeKan. Trying to upgrade is in progress https://github.com/wekan/wekan/issues/5475

Dockerfile is at https://raw.githubusercontent.com/wekan/wekan/main/Dockerfile

For building custom image, and then running it, uncomment these lines, that are currently here, but line numbers could change, if that docker-compose.yml is later modified:

https://github.com/wekan/wekan/blob/main/docker-compose.yml#L144-L146

After your above modifications, text should look like this:

    #-------------------------------------------------------------------------------------
    # ==== BUILD wekan-app DOCKER CONTAINER FROM SOURCE, if you uncomment these ====
    # ==== and use commands: docker compose up -d --build
    build:
      context: .
      dockerfile: Dockerfile
    #-------------------------------------------------------------------------------------

Then modify ROOT_URL, etc settings as needed, see https://github.com/wekan/wekan/wiki/Settings

Start WeKan with custom built Dockerfile with this command:

docker compose up -d --build

If you like to only build Dockerfile:

docker build .

You can also push your image to some Docker registry, like here it's done for WeKan:

https://github.com/wekan/wekan/blob/main/releases/docker-push-wekan.sh

Docker Containers

docker-compose.yml at https://github.com/wekan/wekan

Edit it to have IP address of your server

export ROOT_URL=http://SERVER-IP-ADDRESS-HERE

Then start WeKan with:

docker compose up -d

SSL/TLS info at https://github.com/wekan/wekan/wiki/Settings

Please only use Docker release tags

Repair Docker

Repair Docker

Using only Docker commands

Docker Repository on Quay

Many tags available

Note: docker-compose.yml works

There is much more settings at well-documented docker-compose.yml, those can also be added to be used below.

If you don't need to build Wekan, use prebuilt container with docker-compose.yml from https://github.com/wekan/wekan like this:

docker compose up -d

If you like to build from source, clone Wekan repo:

git clone https://github.com/wekan/wekan

Then edit docker-compose.yml with these lines uncommented this way:

   #-------------------------------------------------------------------------------------
    # ==== BUILD wekan-app DOCKER CONTAINER FROM SOURCE, if you uncomment these ====
    # ==== and use commands: docker compose up -d --build
    build:
      context: .
      dockerfile: Dockerfile
      args:
        - NODE_VERSION=${NODE_VERSION}
        - METEOR_RELEASE=${METEOR_RELEASE}
        - NPM_VERSION=${NPM_VERSION}
        - ARCHITECTURE=${ARCHITECTURE}
        - SRC_PATH=${SRC_PATH}
        - METEOR_EDGE=${METEOR_EDGE}
        - USE_EDGE=${USE_EDGE}
    #-------------------------------------------------------------------------------------

Then you can build Wekan with

docker compose up -d --build

Example for latest Wekan, port 2000 to Docker Wekan internal port 8080

docker run -d --restart=always --name wekan-db mongo:5

docker run -d --restart=always --name wekan --link "wekan-db:db" -e "WITH_API=true" -e "MONGO_URL=mongodb://wekan-db:27017/wekan" -e "ROOT_URL=http://192.168.1.200:2000" -p 2000:8080 wekanteam/wekan:v5.41

Specific release in above URL, not latest:

quay.io/wekan/wekan:v3.37

For latest development version, use without tag:

quay.io/wekan/wekan

DockerBunker: Easy Docker management

Managing Docker containers with DockerBunker

CaptainDuckDuck

Managing Docker containers with CaptainDuckDuck

Backup and Upgrade

Import/Export MongoDB data to/from Docker container

Move Docker containers to other computer, needs more details

Backup before upgrade

docker stop wekan-app
docker exec -it wekan-db bash
cd /data
rm -rf dump
mongodump
exit
docker start wekan-app
docker cp wekan-db:/data/dump .

Upgrade

docker stop wekan-app
docker rm wekan-app

Then edit docker-compose.yml to have higher wekan-app image version tag, like image: wekanteam/wekan:v4.12. Then:

docker compose up -d

Images

Quay: image: quay.io/wekan/wekan:v4.07 Docker Hub: image: wekanteam/wekan:v4.07

Restore

docker stop wekan-app
docker exec -it wekan-db bash
cd /data
rm -rf dump
exit
docker cp dump wekan-db:/data/
docker exec -it wekan-db bash
cd /data
mongorestore --drop
exit
docker start wekan-app

Cleanup

Cleanup and delete all Docker data to get Docker Compose working

Cleanup scripts to remove old data

Docker Compose

Docker Compose: Wekan <=> MongoDB. REQUIRED: READ AND ADD SETTINGS LIKE ROOT_URL ETC TO docker-compose.yml textfile. It also has info about using same MongoDB database for office and VPN users.

Docker Compose: Wekan <=> MongoDB <=> ToroDB => PostgreSQL read-only mirroring

TODO: Docker Compose: Wekan <=> MongoDB <=> ToroDB => MySQL read-only mirroring

OpenShift

OpenShift

SLES

SLES SP1

Rancher

Rancher Rancher Active Proxy

Testing

Install for testing

Production

Production setup for thousands of users with Docker at AWS

Other way to do production

External MongoDB auth

External MongoDB authentication

Admin Panel

First registered Wekan user will get Admin Panel on new Docker and source based installs. You can also enable Admin Panel manually

Docker Hub - sometimes broken

Currently there are two dockerhub builds for wekan. One at mquandalle dockerhub and another at wekanteam dockerhub.

wekanteam dockerhub is usually broken.

Development:

docker run examples

  • MongoDB:

    docker run -d --restart=always --name wekan-db mongo:3.2.20
    
  • No build step, pull from the quay and specify docker variables

    docker run -d --restart=always --name wekan --link "wekan-db:db" -e "MONGO_URL=mongodb://db" -e "ROOT_URL=http://localhost:8080" -p 8080:8080 quay.io/wekan/wekan
    

docker-compose examples

  • No build step and pull from quay

    sudo docker compose up -d --nobuild
    
  • Build default

    sudo docker compose up -d --build
    
  • Build with newer Node version:

    echo 'NODE_VERSION=v8.11.1' >> .env && \
    sudo docker compose up -d --build
    
  • Build custom image off a release candidate or beta for meteor

    echo 'METEOR_EDGE=1.5-beta.17' >> .env && \
    echo 'USE_EDGE=true' >> .env && \
    sudo docker compose up -d --build
    

Docker env for Wekan dev

Alpine, needs testing

Webserver Config