Files
SCM-Manager/docs/en/installation/docker.md
Sebastian Sdorra af2cdfb739 Docker multi-arch builds (#2021)
Replaces the current docker build with a multi arch build powered by buildx.
The new build creates two scm-manager docker image variants.
One based on alpine which uses the openjdk distribution and the other based on debian and eclipse temurin:

scmmanager/scm-manager:<version>-alpine
- linux/amd64
- linux/arm64
scmmanager/scm-manager:<version>-debian
- linux/amd64
- linux/arm64
- linux/arm/v7
scmmanager/scm-manager:<version>
- linux/amd64 alpine based
- linux/arm64 alpine based
- linux/arm/v7 debian based
scmmanager/scm-manager:latest
- linux/amd64 alpine based
- linux/arm64 alpine based
- linux/arm/v7 debian based

The development build produces only a single amd64 image at cloudogu/scm-manager with a snapshot version.

Co-authored-by: Eduard Heimbuch <eduard.heimbuch@cloudogu.com>
2022-05-04 14:38:31 +02:00

2.9 KiB

title, subtitle, displayToc
title subtitle displayToc
Docker Install scm-manager with docker true

Quickstart

Grab the latest version from download page and replace <version> in the code blocks below

docker run --name scm -p 8080:8080 -v scm-home:/var/lib/scm scmmanager/scm-manager:<version>

for example:

docker run --name scm -p 8080:8080 -v scm-home:/var/lib/scm scmmanager/scm-manager:2.0.0

Persistence

It is recommended to create a persistent volume for the scm-manager home directory. This allows scm-manager updates and recreation of the container without lose of data. The home directory is located at /var/lib/scm. It is recommended to use a volume managed by docker. If it is required to use a host directory, keep in mind that the scm-manager process is executed with a user which has the id 1000. So ensure that the user with the uid 1000 can write to the directory e.g.:

mkdir /scm_home
chown 1000:1000 /scm_home
docker run --name scm -p 8080:8080 -v /scm_home:/var/lib/scm scmmanager/scm-manager:<version>

Exposed Ports

SCM-Manager exposes its http port on port 8080. If you want to use the ssh plugin, keep in mind that this plugin requires an extra port (default is 2222).

docker run --name scm -p 2222:2222 -p 8080:8080 -v scm-home:/var/lib/scm scmmanager/scm-manager:<version>

JVM Parameters

If it becomes necessary to add JVM parameters to the start, there are two ways to do this:

  • As arguments e.g.:
docker run scmmanager/scm-manager:<version> -Dsome.property=value
  • Or as JAVA_OPTS environment variable e.g.:
docker run -e JAVA_OPTS="-Dsome.property=value" scmmanager/scm-manager:<version>

Docker Compose

If you want to use the image with docker-compose have a look at the example below.

version: '2.0'
services:
  scm:
    image: scmmanager/scm-manager:<version>
    ports:
    - "8080:8080"
    # if the ssh plugin is used
    - "2222:2222"
    volumes:
    - scmhome:/var/lib/scm
volumes:
  scmhome: {}

Variants

We are offer two variants of the SCM-Manager docker image one with OpenJDK on Alpine and the other with Eclipse Temurin on Debian.

scmmanager/scm-manager:-alpine

This image uses the Alpine operating system and the OpenJDK distribution from the official apk repository. The image is available for the following os/architectures:

  • linux/amd64
  • linux/arm64

scmmanager/scm-manager:-debian

This image uses the Debian operating system and the Eclipse Temurin JDK. The image is available for the following os/architectures:

  • linux/amd64
  • linux/arm64
  • linux/arm/v7

scmmanager/scm-manager:

The default image is mainly an alias for the alpine variant, but there is no alpine variant for arm/v7. For arm/v7 the debian variant is used.

  • linux/amd64 uses the alpine variant
  • linux/arm64 uses the alpine variant
  • linux/arm/v7 uses the debian variant