wekan/docs/Platforms/FOSS/Docker/Docker.md

242 lines
6.8 KiB
Markdown
Raw Normal View History

## Docker Containers
- [GitHub](https://github.com/wekan/wekan/pkgs/container/wekan)
- [Docker Hub](https://hub.docker.com/r/wekanteam/wekan)
- [Quay](https://quay.io/repository/wekan/wekan)
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](Repair-Docker)
## Using only Docker commands
[![Docker Repository on Quay](https://quay.io/repository/wekan/wekan/status "Docker Repository on Quay")](https://quay.io/repository/wekan/wekan)
[Many tags available](https://quay.io/repository/wekan/wekan?tab=tags)
## Note: docker-compose.yml works
There is much more settings at well-documented [docker-compose.yml](https://raw.githubusercontent.com/wekan/wekan/master/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](https://github.com/wekan/wekan/blob/main/docker-compose.yml#L132-L142) 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](https://github.com/chaosbunker/dockerbunker)
## CaptainDuckDuck
[Managing Docker containers with CaptainDuckDuck](https://github.com/wekan/wekan/issues/1375#issuecomment-413626075)
## Backup and Upgrade
[Import/Export MongoDB data to/from Docker container](Export-Docker-Mongo-Data)
[Move Docker containers to other computer](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](https://github.com/wekan/wekan/issues/985)
[Cleanup scripts to remove old data](https://github.com/wekan/wekan-cleanup)
## Docker Compose
[Docker Compose: Wekan <=> MongoDB](https://github.com/wekan/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](https://github.com/wekan/wekan-postgresql)
TODO: [Docker Compose: Wekan <=> MongoDB <=> ToroDB => MySQL read-only mirroring](https://github.com/torodb/stampede/issues/203)
## OpenShift
[OpenShift](OpenShift)
## SLES
[SLES SP1](Install-Wekan-Docker-on-SUSE-Linux-Enterprise-Server-12-SP1)
## Rancher
[Rancher Rancher Active Proxy](Rancher---Rancher-Active-Proxy---Wekan-MongoDB-Docker)
## Testing
[Install for testing](Install-Wekan-Docker-for-testing)
## Production
[Production setup for thousands of users with Docker at AWS](AWS)
[Other way to do production](Install-Wekan-Docker-in-production)
## External MongoDB auth
[External MongoDB authentication](https://github.com/wekan/wekan/issues/1375)
## Admin Panel
First registered Wekan user will get Admin Panel on new Docker and source based
installs. You can also [enable Admin Panel manually](https://github.com/wekan/wekan/blob/main/CHANGELOG.md#v0111-rc2-2017-03-05-wekan-prerelease)
## Docker Hub - sometimes broken
Currently there are two dockerhub builds for wekan. One at [mquandalle dockerhub](https://hub.docker.com/r/mquandalle/wekan/builds/) and another at [wekanteam dockerhub](https://hub.docker.com/r/wekanteam/wekan/builds/).
[wekanteam dockerhub](https://hub.docker.com/r/wekanteam/wekan/builds/) 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](https://quay.io/repository/wekan/wekan?tab=tags) 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](https://quay.io/repository/wekan/wekan?tab=tags)
```
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
* [Docker environment for Wekan Development](https://github.com/wekan/wekan-dev)
## Alpine, needs testing
* [Docker Compose: Alpine Linux and Wekan <=> MongoDB](https://github.com/wekan/wekan-launchpad)
## Webserver Config
* [Caddy Webserver Config](Caddy-Webserver-Config)
* [Nginx Webserver Config](Nginx-Webserver-Config)
* [Apache Webserver Config](Apache)