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:
		
							parent
							
								
									14b6257160
								
							
						
					
					
						commit
						e180456983
					
				
					 5 changed files with 197 additions and 24 deletions
				
			
		
							
								
								
									
										185
									
								
								.drone.yml
									
									
									
									
									
								
							
							
						
						
									
										185
									
								
								.drone.yml
									
									
									
									
									
								
							|  | @ -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: | ||||||
|  |  | ||||||
|  | @ -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 | ||||||
|  |  | ||||||
|  | @ -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 | ||||||
|  |  | ||||||
|  | @ -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 | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -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" | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue