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>
This commit is contained in:
techknowlogick 2021-07-14 13:08:43 -04:00 committed by GitHub
parent 14b6257160
commit e180456983
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 197 additions and 24 deletions

View file

@ -691,7 +691,7 @@ steps:
--- ---
kind: pipeline kind: pipeline
name: docker-linux-amd64-release name: docker-linux-amd64-release-version
platform: platform:
os: linux os: linux
@ -703,7 +703,6 @@ depends_on:
trigger: trigger:
ref: ref:
- refs/heads/main
- "refs/tags/**" - "refs/tags/**"
event: event:
exclude: exclude:
@ -754,6 +753,70 @@ steps:
exclude: exclude:
- pull_request - pull_request
---
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 kind: pipeline
name: docker-linux-arm64-dry-run name: docker-linux-arm64-dry-run
@ -788,7 +851,7 @@ steps:
--- ---
kind: pipeline kind: pipeline
name: docker-linux-arm64-release name: docker-linux-arm64-release-version
platform: platform:
os: linux os: linux
@ -800,7 +863,6 @@ depends_on:
trigger: trigger:
ref: ref:
- refs/heads/main
- "refs/tags/**" - "refs/tags/**"
event: event:
exclude: exclude:
@ -856,7 +918,73 @@ steps:
--- ---
kind: pipeline 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: platform:
os: linux os: linux
@ -888,12 +1016,54 @@ steps:
trigger: trigger:
ref: ref:
- refs/heads/main
- "refs/tags/**" - "refs/tags/**"
event: event:
exclude: exclude:
- cron - 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: depends_on:
- docker-linux-amd64-release - docker-linux-amd64-release
- docker-linux-arm64-release - docker-linux-arm64-release
@ -927,7 +1097,10 @@ depends_on:
- release-latest - release-latest
- docker-linux-amd64-release - docker-linux-amd64-release
- docker-linux-arm64-release - docker-linux-arm64-release
- docker-linux-amd64-release-version
- docker-linux-arm64-release-version
- docker-manifest - docker-manifest
- docker-manifest-version
- docs - docs
steps: steps:

View file

@ -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}} {{#if build.tags}}
tags: tags:
{{#each build.tags}} {{#each build.tags}}
- {{this}}-rootless - {{this}}-rootless
{{/each}} {{/each}}
- "latest-rootless"
{{/if}} {{/if}}
manifests: 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: platform:
architecture: amd64 architecture: amd64
os: linux 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: platform:
architecture: arm64 architecture: arm64
os: linux os: linux

View file

@ -1,18 +1,19 @@
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}} {{#if build.tags}}
tags: tags:
{{#each build.tags}} {{#each build.tags}}
- {{this}} - {{this}}
{{/each}} {{/each}}
- "latest"
{{/if}} {{/if}}
manifests: 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: platform:
architecture: amd64 architecture: amd64
os: linux 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: platform:
architecture: arm64 architecture: arm64
os: linux os: linux

View file

@ -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`. 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/` 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. 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 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.
For a stable release you can use `:1-rootless` or specify a certain release like `:{{< version >}}-rootless`.
```yaml ```yaml
version: "2" version: "2"
services: services:
server: server:
image: gitea/gitea:latest-rootless image: gitea/gitea:{{< version >}}-rootless
restart: always restart: always
volumes: volumes:
- ./data:/var/lib/gitea - ./data:/var/lib/gitea
@ -63,7 +62,7 @@ version: "2"
services: services:
server: server:
image: gitea/gitea:latest-rootless image: gitea/gitea:{{< version >}}-rootless
restart: always restart: always
volumes: volumes:
- ./data:/var/lib/gitea - ./data:/var/lib/gitea
@ -87,7 +86,7 @@ version: "2"
services: services:
server: server:
image: gitea/gitea:latest-rootless image: gitea/gitea:{{< version >}}-rootless
+ environment: + environment:
+ - GITEA__database__DB_TYPE=mysql + - GITEA__database__DB_TYPE=mysql
+ - GITEA__database__HOST=db:3306 + - GITEA__database__HOST=db:3306
@ -128,7 +127,7 @@ version: "2"
services: services:
server: server:
image: gitea/gitea:latest-rootless image: gitea/gitea:{{< version >}}-rootless
environment: environment:
+ - GITEA__database__DB_TYPE=postgres + - GITEA__database__DB_TYPE=postgres
+ - GITEA__database__HOST=db:5432 + - GITEA__database__HOST=db:5432
@ -174,7 +173,7 @@ version: "2"
+ +
services: services:
server: server:
image: gitea/gitea:latest-rootless image: gitea/gitea:{{< version >}}-rootless
restart: always restart: always
volumes: volumes:
- - ./data:/var/lib/gitea - - ./data:/var/lib/gitea
@ -201,7 +200,7 @@ version: "2"
services: services:
server: server:
image: gitea/gitea:latest-rootless image: gitea/gitea:{{< version >}}-rootless
restart: always restart: always
+ user: 1001 + user: 1001
volumes: volumes:
@ -262,7 +261,7 @@ docker-compose up -d
- Rename folder (inside volume) gitea to custom - Rename folder (inside volume) gitea to custom
- Edit app.ini if needed - Edit app.ini if needed
- Set START_SSH_SERVER = true - Set START_SSH_SERVER = true
- Use image gitea/gitea:latest-rootless - Use image gitea/gitea:{{< version >}}-rootless
## Managing Deployments With Environment Variables ## Managing Deployments With Environment Variables

View file

@ -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`. 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. 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. 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 `: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.
For a stable release you can use `:1` or specify a certain release like `:{{< version >}}`.
```yaml ```yaml
version: "3" version: "3"