A GitBucket Docker image and Kubernetes Helm chart.
This repository is automatically updated to the latest GitBucket by CircleCI.
docker run -p 8080:8080 -p 29418:29418 int128/gitbucket
You can save your GitBucket data to ./gitbucket persistently as follows:
mkdir -p /data/gitbucket
chown -R 1000:1000 /data/gitbucket
docker run -p 8080:8080 -p 29418:29418 -v /data/gitbucket:/var/gitbucket int128/gitbucket
This image runs as gitbucket user (uid=1000, gid=1000), not root for security reason.
This image exposes the following ports:
8080 - Web service29418 - SSH access to git repositoryYou can set the following environment variables:
| Name | Value |
|---|---|
GITBUCKET_HOME | Directory to store data. Defaults to /var/gitbucket. |
GITBUCKET_BASE_URL | Base URL. This may be required if container is behind a reverse proxy. |
GITBUCKET_DB_URL | External database URL. Defaults to H2. |
GITBUCKET_DB_USER | External database user. |
GITBUCKET_DB_PASSWORD | External database password. |
GITBUCKET_OPTS | GitBucket command line options. |
JAVA_OPTS | JVM options. Defaults to options setting JVM heap by container memory limit. See Dockerfile for more. |
:warning: NOTE: Currently Helm chart is not published due to CI issue. Please build it yourself instead
helm repo add int128.github.io https://int128.github.io/helm-charts
helm repo update
helm install int128.github.io/gitbucket
The Helm chart considers the followings:
/var/gitbucket./var/gitbucket by the init container.:8080/signin. It should return 200.You can set the following values:
| Name | Value |
|---|---|
gitbucket.options | GitBucket command line options. |
javavm.options | JVM options. Defaults to setting JVM heap by the memory limit. See Dockerfile for more. |
externalDatabase.url | The external database URL. Defaults to H2. |
externalDatabase.user | The external database user. |
externalDatabase.password | The external database password. |
externalDatabase.existingSecret | Name of an existing secret to be used for the database password. |
externalDatabase.existingSecretKey | The key for the database password in the existing secret. |
persistentVolume.existingClaim | Name of an existing Persistent Volume Claim. |
persistentVolume.size | Size of a Persistent Volume Claim for dynamic provisioning. Defaults to 10Gi. |
resources.limits.memory | Memory limit. Defaults to 1Gi. |
resources.requests.memory | Memory request. Defaults to 1Gi. |
ingress.enabled | If true, an ingress is be created. |
ingress.hosts | A list of hosts for the ingress. |
annotations | Additional annotations. Defaults to {} |
labels | Additional labels. Defaults to {} |
environment | Additional environment variables. Defaults to {} |
enableServiceLinks | Indicates whether information about services should be injected into pod's environment variables. Defaults to true |
useDefaultServiceAccount | Indicates whether the default ServiceAccount should be used. Otherwise a ServiceAccount with the name gitbucket.fullname will be created. Defaults to true |
runAsNonRoot | Require that the container will run with a user with any UID other than 0. Defaults to false |
chownDataDirectoryInInitContainer | Enable initContainer that will change ownership of data directory to 1000:1000. Defaults to true |
You can create a database and user for the GitBucket as follows:
# PostgreSQL
CREATE DATABASE gitbucket;
CREATE USER gitbucket PASSWORD 'gitbucket';
GRANT ALL PRIVILEGES ON DATABASE gitbucket TO gitbucket;
# MySQL
CREATE DATABASE gitbucket;
GRANT ALL PRIVILEGES ON gitbucket.* to gitbucket@'%' identified by 'gitbucket';
FLUSH PRIVILEGES;
This is an open source software licensed under Apache License 2.0. Feel free to open issues and pull requests.
Content type
Image
Digest
Size
125.7 MB
Last updated
over 5 years ago
docker pull int128/gitbucket