Sign inSign up

aangiel/gitlab

By aangiel

Updated almost 5 years ago

Repository for GitLab Omnibus arm64 packages

Image
0

266

aangiel/gitlab repository overview

GitLab EE for arm64

You can ommit "Optional tasks" if you had done this before in other repos.

Original: https://hub.docker.com/r/gitlab/gitlab-ee

Optional tasks:

1. Create network:
sudo docker network create nginx-proxy
2. Create directories
mkdir $HOME/nginx-proxy \
    $HOME/nginx-proxy/certs \
    $HOME/nginx-proxy/vhost \
    $HOME/nginx-proxy/html \
    $HOME/nginx-proxy/acme \
    $HOME/mariadb \
    $HOME/mariadb/data
3. Run nginx-proxy:
sudo docker run \
    --detach \
    --name nginx-proxy \
    --publish 80:80 \
    --publish 443:443 \
    --volume $HOME/nginx-proxy/certs:/etc/nginx/certs \
    --volume $HOME/nginx-proxy/vhost:/etc/nginx/vhost.d \
    --volume $HOME/nginx-proxy/html:/usr/share/nginx/html \
    --volume /var/run/docker.sock:/tmp/docker.sock:ro \
    --network nginx-proxy \
    --restart unless-stopped \
nginxproxy/nginx-proxy
4. Run Let's Encrypting
sudo docker run \
    --detach \
    --name nginx-proxy-acme \
    --volumes-from nginx-proxy \
    --volume /var/run/docker.sock:/var/run/docker.sock:ro \
    --volume $HOME/nginx-proxy/acme:/etc/acme.sh \
    --env DEFAULT_EMAIL=<[email protected]> \
    --network nginx-proxy \
    --restart=unless-stopped \
nginxproxy/acme-companion
5. Run database
sudo docker run  \
    --detach \
    --name mariadb \
    --env MARIADB_ROOT_PASSWORD=<ROOT_PASSWORD> \
    --volume $HOME/mariadb/data:/var/lib/mysql \
    --network nginx-proxy \
    --restart=unless-stopped \
mariadb:10.5

Run GitLab

1. Create folders
mkdir $HOME/gitlab \
    $HOME/gitlab/config \
    $HOME/gitlab/logs \
    $HOME/gitlab/data
2. Run container
sudo docker run \
    --detach \
    --name gitlab \
    --network nginx-proxy \
    --volume $HOME/gitlab/config:/etc/gitlab \
    --volume $HOME/gitlab/logs:/var/log/gitlab \
    --volume $HOME/gitlab/data:/var/opt/gitlab \
    --env VIRTUAL_HOST=gitlab.<DOMAIN.TLD>,registry.gitlab.<DOMAIN.TLD> \
    --env LETSENCRYPT_HOST=gitlab.<DOMAIN.TLD>,registry.gitlab.<DOMAIN.TLD> \
    --restart=unless-stopped \
    --publish 9022:22 \
    --log-driver local \
gitlab:latest
3. Edit $HOME/gitlab/config/gitlab.rb
external_url 'https://gitlab.<DOMAIN.TLD>'

gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "<SMTP_URL_OR_IP>"
gitlab_rails['smtp_port'] = <SMTP_PORT>
gitlab_rails['smtp_user_name'] = "<SMTP_USER>"
gitlab_rails['smtp_password'] = "<SMTP_PASS>"
gitlab_rails['smtp_domain'] = "gitlab.<DOMAIN.TLD>"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true
gitlab_rails['smtp_pool'] = false

gitlab_rails['gitlab_shell_ssh_port'] = 9022

registry_external_url 'https://registry.gitlab.<DOMAIN.TLD>'
gitlab_rails['registry_enabled'] = true
gitlab_rails['registry_host'] = "https://registry.gitlab.<DOMAIN.TLD>"
gitlab_rails['registry_path'] = "/var/opt/gitlab/gitlab-rails/shared/registry"

nginx['enable'] = true
nginx['client_max_body_size'] = '500m' 
nginx['listen_port'] = 80
nginx['listen_https'] = false

registry_nginx['enable'] = true

registry_nginx['proxy_set_headers'] = {
 "Host" => "$http_host",
 "X-Real-IP" => "$remote_addr",
 "X-Forwarded-For" => "$proxy_add_x_forwarded_for",
 "X-Forwarded-Proto" => "https",
 "X-Forwarded-Ssl" => "on"
}

registry_nginx['listen_port'] = 80
registry_nginx['listen_https'] = false

prometheus['enable'] = false
4. Reconfigure GitLab
sudo docker exec -it gitlab gitlab-ctl reconfigure

Tag summary

Content type

Image

Digest

Size

1003.4 MB

Last updated

almost 5 years ago

docker pull aangiel/gitlab