summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authortechknowlogick <techknowlogick@gitea.io>2021-07-14 13:08:43 -0400
committerGitHub <noreply@github.com>2021-07-14 18:08:43 +0100
commite180456983e4267e8a1a37088775b5d410900635 (patch)
tree4a46313b62ca83540dba9295d2cea2767d171937
parent14b6257160910ea5358acee31fd526c1dad77236 (diff)
downloadgitea-e180456983e4267e8a1a37088775b5d410900635.tar.gz
gitea-e180456983e4267e8a1a37088775b5d410900635.zip
Change docker tag logic (#16421)
* Change docker logic * Apply suggestions from code review Co-authored-by: Kyle D. <kdumontnu@gmail.com> * docs Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: Lauris BH <lauris@nix.lv> Co-authored-by: Kyle D. <kdumontnu@gmail.com>
-rw-r--r--.drone.yml185
-rw-r--r--docker/manifest.rootless.tmpl7
-rw-r--r--docker/manifest.tmpl9
-rw-r--r--docs/content/doc/installation/with-docker-rootless.en-us.md17
-rw-r--r--docs/content/doc/installation/with-docker.en-us.md3
5 files changed, 197 insertions, 24 deletions
diff --git a/.drone.yml b/.drone.yml
index ac88d1c989..e766ba6134 100644
--- a/.drone.yml
+++ b/.drone.yml
@@ -691,7 +691,7 @@ steps:
---
kind: pipeline
-name: docker-linux-amd64-release
+name: docker-linux-amd64-release-version
platform:
os: linux
@@ -703,7 +703,6 @@ depends_on:
trigger:
ref:
- - refs/heads/main
- "refs/tags/**"
event:
exclude:
@@ -756,6 +755,70 @@ steps:
---
kind: pipeline
+name: docker-linux-amd64-release
+
+platform:
+ os: linux
+ arch: amd64
+
+depends_on:
+ - testing-amd64
+ - testing-arm64
+
+trigger:
+ ref:
+ - refs/heads/main
+ event:
+ exclude:
+ - cron
+
+steps:
+ - name: fetch-tags
+ image: docker:git
+ commands:
+ - git fetch --tags --force
+
+ - name: publish
+ pull: always
+ image: techknowlogick/drone-docker:latest
+ settings:
+ auto_tag: false
+ tags: dev-linux-amd64
+ repo: gitea/gitea
+ build_args:
+ - GOPROXY=off
+ password:
+ from_secret: docker_password
+ username:
+ from_secret: docker_username
+ when:
+ event:
+ exclude:
+ - pull_request
+
+ - name: publish-rootless
+ image: techknowlogick/drone-docker:latest
+ settings:
+ dockerfile: Dockerfile.rootless
+ auto_tag: false
+ tags: dev-linux-amd64-rootless
+ repo: gitea/gitea
+ build_args:
+ - GOPROXY=off
+ password:
+ from_secret: docker_password
+ username:
+ from_secret: docker_username
+ environment:
+ PLUGIN_MIRROR:
+ from_secret: plugin_mirror
+ when:
+ event:
+ exclude:
+ - pull_request
+
+---
+kind: pipeline
name: docker-linux-arm64-dry-run
platform:
@@ -788,7 +851,7 @@ steps:
---
kind: pipeline
-name: docker-linux-arm64-release
+name: docker-linux-arm64-release-version
platform:
os: linux
@@ -800,7 +863,6 @@ depends_on:
trigger:
ref:
- - refs/heads/main
- "refs/tags/**"
event:
exclude:
@@ -856,7 +918,73 @@ steps:
---
kind: pipeline
-name: docker-manifest
+name: docker-linux-arm64-release
+
+platform:
+ os: linux
+ arch: arm64
+
+depends_on:
+ - testing-amd64
+ - testing-arm64
+
+trigger:
+ ref:
+ - refs/heads/main
+ event:
+ exclude:
+ - cron
+
+steps:
+ - name: fetch-tags
+ image: docker:git
+ commands:
+ - git fetch --tags --force
+
+ - name: publish
+ pull: always
+ image: techknowlogick/drone-docker:latest
+ settings:
+ auto_tag: false
+ tags: dev-linux-arm64
+ repo: gitea/gitea
+ build_args:
+ - GOPROXY=off
+ password:
+ from_secret: docker_password
+ username:
+ from_secret: docker_username
+ environment:
+ PLUGIN_MIRROR:
+ from_secret: plugin_mirror
+ when:
+ event:
+ exclude:
+ - pull_request
+
+ - name: publish-rootless
+ image: techknowlogick/drone-docker:latest
+ settings:
+ dockerfile: Dockerfile.rootless
+ auto_tag: false
+ tags: dev-linux-arm64-rootless
+ repo: gitea/gitea
+ build_args:
+ - GOPROXY=off
+ password:
+ from_secret: docker_password
+ username:
+ from_secret: docker_username
+ environment:
+ PLUGIN_MIRROR:
+ from_secret: plugin_mirror
+ when:
+ event:
+ exclude:
+ - pull_request
+---
+kind: pipeline
+name: docker-manifest-version
platform:
os: linux
@@ -888,13 +1016,55 @@ steps:
trigger:
ref:
- - refs/heads/main
- "refs/tags/**"
event:
exclude:
- cron
depends_on:
+ - docker-linux-amd64-release-version
+ - docker-linux-arm64-release-version
+
+---
+kind: pipeline
+name: docker-manifest
+
+platform:
+ os: linux
+ arch: amd64
+
+steps:
+ - name: manifest-rootless
+ pull: always
+ image: plugins/manifest
+ settings:
+ auto_tag: false
+ ignore_missing: true
+ spec: docker/manifest.rootless.tmpl
+ password:
+ from_secret: docker_password
+ username:
+ from_secret: docker_username
+
+ - name: manifest
+ image: plugins/manifest
+ settings:
+ auto_tag: false
+ ignore_missing: true
+ spec: docker/manifest.tmpl
+ password:
+ from_secret: docker_password
+ username:
+ from_secret: docker_username
+
+trigger:
+ ref:
+ - refs/heads/main
+ event:
+ exclude:
+ - cron
+
+depends_on:
- docker-linux-amd64-release
- docker-linux-arm64-release
@@ -927,7 +1097,10 @@ depends_on:
- release-latest
- docker-linux-amd64-release
- docker-linux-arm64-release
+ - docker-linux-amd64-release-version
+ - docker-linux-arm64-release-version
- docker-manifest
+ - docker-manifest-version
- docs
steps:
diff --git a/docker/manifest.rootless.tmpl b/docker/manifest.rootless.tmpl
index aed36caa4e..1d14041ff2 100644
--- a/docker/manifest.rootless.tmpl
+++ b/docker/manifest.rootless.tmpl
@@ -1,18 +1,19 @@
-image: gitea/gitea:{{#if build.tag}}{{trimPrefix "v" build.tag}}{{else}}latest{{/if}}-rootless
+image: gitea/gitea:{{#if build.tag}}{{trimPrefix "v" build.tag}}{{else}}dev{{/if}}-rootless
{{#if build.tags}}
tags:
{{#each build.tags}}
- {{this}}-rootless
{{/each}}
+ - "latest-rootless"
{{/if}}
manifests:
-
- image: gitea/gitea:{{#if build.tag}}{{trimPrefix "v" build.tag}}-{{/if}}linux-amd64-rootless
+ image: gitea/gitea:{{#if build.tag}}{{trimPrefix "v" build.tag}}{{else}}dev{{/if}}-linux-amd64-rootless
platform:
architecture: amd64
os: linux
-
- image: gitea/gitea:{{#if build.tag}}{{trimPrefix "v" build.tag}}-{{/if}}linux-arm64-rootless
+ image: gitea/gitea:{{#if build.tag}}{{trimPrefix "v" build.tag}}{{else}}dev{{/if}}-linux-arm64-rootless
platform:
architecture: arm64
os: linux
diff --git a/docker/manifest.tmpl b/docker/manifest.tmpl
index 9678449628..43a57f7f27 100644
--- a/docker/manifest.tmpl
+++ b/docker/manifest.tmpl
@@ -1,19 +1,20 @@
-image: gitea/gitea:{{#if build.tag}}{{trimPrefix "v" build.tag}}{{else}}latest{{/if}}
+image: gitea/gitea:{{#if build.tag}}{{trimPrefix "v" build.tag}}{{else}}dev{{/if}}
{{#if build.tags}}
tags:
{{#each build.tags}}
- {{this}}
{{/each}}
+ - "latest"
{{/if}}
manifests:
-
- image: gitea/gitea:{{#if build.tag}}{{trimPrefix "v" build.tag}}-{{/if}}linux-amd64
+ image: gitea/gitea:{{#if build.tag}}{{trimPrefix "v" build.tag}}-{{else}}dev-{{/if}}linux-amd64
platform:
architecture: amd64
os: linux
-
- image: gitea/gitea:{{#if build.tag}}{{trimPrefix "v" build.tag}}-{{/if}}linux-arm64
+ image: gitea/gitea:{{#if build.tag}}{{trimPrefix "v" build.tag}}-{{else}}dev-{{/if}}linux-arm64
platform:
architecture: arm64
os: linux
- variant: v8
+ variant: v8 \ No newline at end of file
diff --git a/docs/content/doc/installation/with-docker-rootless.en-us.md b/docs/content/doc/installation/with-docker-rootless.en-us.md
index 53eaed3bb1..62902a8866 100644
--- a/docs/content/doc/installation/with-docker-rootless.en-us.md
+++ b/docs/content/doc/installation/with-docker-rootless.en-us.md
@@ -32,15 +32,14 @@ image as a service. Since there is no database available, one can be initialized
Create a directory for `data` and `config` then paste the following content into a file named `docker-compose.yml`.
Note that the volume should be owned by the user/group with the UID/GID specified in the config file. By default Gitea in docker will use uid:1000 gid:1000. If needed you can set ownership on those folders with the command: `sudo chown 1000:1000 config/ data/`
If you don't give the volume correct permissions, the container may not start.
-Also be aware that the tag `:latest-rootless` will install the current development version.
-For a stable release you can use `:1-rootless` or specify a certain release like `:{{< version >}}-rootless`.
+For a stable release you could use `:latest-rootless`, `:1-rootless` or specify a certain release like `:{{< version >}}-rootless`, but if you'd like to use the latest development version then `:dev-rootless` would be an appropriate tag.
```yaml
version: "2"
services:
server:
- image: gitea/gitea:latest-rootless
+ image: gitea/gitea:{{< version >}}-rootless
restart: always
volumes:
- ./data:/var/lib/gitea
@@ -63,7 +62,7 @@ version: "2"
services:
server:
- image: gitea/gitea:latest-rootless
+ image: gitea/gitea:{{< version >}}-rootless
restart: always
volumes:
- ./data:/var/lib/gitea
@@ -87,7 +86,7 @@ version: "2"
services:
server:
- image: gitea/gitea:latest-rootless
+ image: gitea/gitea:{{< version >}}-rootless
+ environment:
+ - GITEA__database__DB_TYPE=mysql
+ - GITEA__database__HOST=db:3306
@@ -128,7 +127,7 @@ version: "2"
services:
server:
- image: gitea/gitea:latest-rootless
+ image: gitea/gitea:{{< version >}}-rootless
environment:
+ - GITEA__database__DB_TYPE=postgres
+ - GITEA__database__HOST=db:5432
@@ -174,7 +173,7 @@ version: "2"
+
services:
server:
- image: gitea/gitea:latest-rootless
+ image: gitea/gitea:{{< version >}}-rootless
restart: always
volumes:
- - ./data:/var/lib/gitea
@@ -201,7 +200,7 @@ version: "2"
services:
server:
- image: gitea/gitea:latest-rootless
+ image: gitea/gitea:{{< version >}}-rootless
restart: always
+ user: 1001
volumes:
@@ -262,7 +261,7 @@ docker-compose up -d
- Rename folder (inside volume) gitea to custom
- Edit app.ini if needed
- Set START_SSH_SERVER = true
-- Use image gitea/gitea:latest-rootless
+- Use image gitea/gitea:{{< version >}}-rootless
## Managing Deployments With Environment Variables
diff --git a/docs/content/doc/installation/with-docker.en-us.md b/docs/content/doc/installation/with-docker.en-us.md
index 06917b5d8a..3c51852fba 100644
--- a/docs/content/doc/installation/with-docker.en-us.md
+++ b/docs/content/doc/installation/with-docker.en-us.md
@@ -34,8 +34,7 @@ image as a service. Since there is no database available, one can be initialized
Create a directory like `gitea` and paste the following content into a file named `docker-compose.yml`.
Note that the volume should be owned by the user/group with the UID/GID specified in the config file.
If you don't give the volume correct permissions, the container may not start.
-Also be aware that the tag `:latest` will install the current development version.
-For a stable release you can use `:1` or specify a certain release like `:{{< version >}}`.
+For a stable release you can use `:latest`, `:1` or specify a certain release like `:{{< version >}}`, but if you'd like to use the latest development version of Gitea then you could use the `:dev` tag.
```yaml
version: "3"