Deckhouse Code runs as one container that holds the same omnibus package as the Linux package installation. The host provides Docker Engine, the resources of a single instance, the directories behind the volumes and the network ports.
Host
The container runs on a Linux host with the x86_64 architecture and Docker Engine.
Memory and disk are those of the Linux package installation, listed in Requirements: 8 GB of RAM (6 GB plus swap as the minimum) and at least 20 GB of free space for the instance data. The image takes another 2.5–3 GB on the host.
Volumes
The image declares volumes for the configuration, the data and the logs. Mount all of them: they hold the state that outlives the container, and an upgrade replaces the container while keeping the volumes.
| Path in the container | Content |
|---|---|
/etc/gitlab |
Configuration file gitlab.rb, encryption keys gitlab-secrets.json, TLS certificates, SSH host keys, the initial root password file. |
/var/opt/gitlab |
Repositories, database, uploaded files, CI artifacts, package registry, backup archives in /var/opt/gitlab/backups. |
/var/log/gitlab |
Logs of every service and the log of each configuration run in /var/log/gitlab/reconfigure. |
In the examples on these pages the volumes are host directories: /srv/code/config, /srv/code/data and /srv/code/logs.
Network ports
The exposed ports carry Git over SSH, HTTP and HTTPS traffic.
| Port | What uses it |
|---|---|
22 |
Git over SSH. The container runs its own sshd, which accepts the git user and public-key authentication. |
80 |
Web interface and Git over HTTP, redirect to HTTPS once TLS is configured. |
443 |
Web interface and Git over HTTPS. |
Publish the ports when you create the container. A host port may differ from the container port: in that case the address of the instance names the host port that users open, and an SSH port other than 22 is named in the configuration, as described in Post-installation setup.
Shared memory
Create the container with --shm-size 256m. Docker gives /dev/shm 64 MB by default.