25 Commits

Author SHA1 Message Date
e30c7c007f feat: support service.command
Some checks failed
Markdown linter / markdown-lint (push) Successful in 3s
Release / release (push) Successful in 1m24s
Release / sync-to-hub-docker-io (push) Successful in 28s
Golang Tests / unittest (push) Failing after 2m48s
This patch extends dcmerge to support the command attribut of a defined service.
For example:

```yaml
services:
  busybox
    command: [ "/usr/bin/cp", "--recursive", "--force", "/tmp/bar.txt", "/tmp/foo.txt"]
    image: library/busybox:latest
```

The command attribute is interpreted as a whole. This means that individual
arguments are not merged as a comparison, as this would change the meaning of
the command attribute.
2025-05-22 09:49:43 +02:00
973e90986c style(markdown): adapt configuration
All checks were successful
Markdown linter / markdown-lint (push) Successful in 8s
Golang Tests / unittest (push) Successful in 29s
2025-05-13 17:53:33 +02:00
90a6350a02 fix(drone): remove configuration
All checks were successful
Golang Tests / unittest (push) Successful in 22s
Markdown linter / markdown-lint (push) Successful in 10s
2025-05-08 14:51:15 +02:00
89f4f5b0fa chore(deps): update actions/setup-go action to v5.5.0
All checks were successful
Golang Tests / unittest (pull_request) Successful in 2m40s
Markdown linter / markdown-lint (pull_request) Successful in 11s
Markdown linter / markdown-lint (push) Successful in 7s
Golang Tests / unittest (push) Successful in 24s
2025-05-08 04:03:00 +00:00
ee1474a506 chore(deps): update docker.io/library/golang docker tag to v1.24.3
All checks were successful
Markdown linter / markdown-lint (pull_request) Successful in 11s
Golang Tests / unittest (pull_request) Successful in 2m28s
Markdown linter / markdown-lint (push) Successful in 8s
Golang Tests / unittest (push) Successful in 31s
2025-05-06 22:03:33 +00:00
1d33b165eb chore(deps): update goreleaser/goreleaser-action action to v6.3.0
All checks were successful
Golang Tests / unittest (pull_request) Successful in 47s
Markdown linter / markdown-lint (pull_request) Successful in 11s
Golang Tests / unittest (push) Successful in 45s
Markdown linter / markdown-lint (push) Successful in 12s
2025-04-14 19:07:57 +00:00
6fb289da71 docs(README): remove badge of drone.io
All checks were successful
Golang Tests / unittest (push) Successful in 41s
Markdown linter / markdown-lint (push) Successful in 16s
Update Docker Hub Description / update-description-on-hub-docker-io (push) Successful in 16s
2025-04-14 19:51:56 +02:00
ed0b94e4b8 fix(ci): select correct repository on hub.docker.io
Some checks are pending
Golang Tests / unittest (push) Waiting to run
Markdown linter / markdown-lint (push) Waiting to run
Update Docker Hub Description / update-description-on-hub-docker-io (push) Waiting to run
2025-04-14 19:51:23 +02:00
5f06edff04 chore(ci): use '.yaml' extension 2025-04-14 19:51:23 +02:00
5560d13550 feat(ci): sync description on hub.docker.io
Some checks failed
Markdown linter / markdown-lint (push) Waiting to run
Golang Tests / unittest (push) Has been cancelled
Update Docker Hub Description / update-description-on-hub-docker-io (push) Failing after 10s
2025-04-14 19:45:41 +02:00
6387e972e3 chore(ci): add golang tests
All checks were successful
Golang Tests / unittest (push) Successful in 42s
Markdown linter / markdown-lint (push) Successful in 12s
2025-04-14 19:29:09 +02:00
5eec7fc1a5 chore(ci): add markdownlinter
All checks were successful
Markdown linter / markdown-lint (push) Successful in 8s
2025-04-14 19:20:12 +02:00
0688315658 chore(ci): remove suffix
All checks were successful
Release / release (push) Successful in 1m52s
Release / sync-container-image (push) Successful in 48s
2025-04-14 19:17:56 +02:00
63a54e130d chore(ci): use goreleaser
Some checks failed
Release / release (push) Successful in 6m4s
Release / sync-container-image (push) Failing after 33s
2025-04-14 19:07:10 +02:00
ef1c7f25a3 chore(deps): update container images
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
2025-04-01 19:11:19 +00:00
cc9c98b84d chore(renovate): use configuration preset
All checks were successful
continuous-integration/drone/push Build is passing
2025-03-30 22:46:31 +02:00
9f29df1311 chore(deps): update docker.io/plugins/docker docker tag to v20.18.8
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
2025-03-26 20:10:46 +00:00
1d8a8d7b76 Merge pull request 'chore(deps): update docker.io/library/golang docker tag to v1.24.1' (#74) from renovate/docker.io-library-golang-1.x into master
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #74
2025-03-22 17:01:14 +00:00
3e73692f28 chore(deps): update docker.io/library/golang docker tag to v1.24.1
Some checks failed
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is passing
2025-03-22 15:29:22 +00:00
7a0c89c8b7 chore(renovate): remove obsolete matchBaseBranches
All checks were successful
continuous-integration/drone/push Build is passing
2025-03-22 15:10:00 +00:00
3c56ae6e5e fix(docker-compose): extend YAML marshaler of service.dependsOn
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/tag Build is passing
The current implementation of the method DependsOnContainer.MarshalYAML()
transform the short syntax into the long syntax. More about booth version
types of depends_on is described here:

- https://docs.docker.com/reference/compose-file/services/#short-syntax-1
- https://docs.docker.com/reference/compose-file/services/#long-syntax-1

Other applications are not compatible with the long syntax. For this reason the
MarshalYAML method has been adapted to take care of the specific syntax.

As documented of the long syntax, `depends_on.<dependency>.condition: service_started`
is the same as `depends_on: [ 'dependency' ]`, the long syntax will be shortened
when no other condition type of a dependency is specified.
2025-03-04 17:50:01 +01:00
ed7622a34f chore(coverage): ignore coverage.txt 2025-03-04 17:50:01 +01:00
967c20c638 fix(cmd): replace deprecated cobra function 2025-03-04 17:50:01 +01:00
c23633a385 chore(deps): update quay.io/skopeo/stable docker tag to v1.18.0
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
2025-02-28 17:10:07 +00:00
68db80a05a fix(yaml): set indentation to 2 spaces
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/tag Build is passing
The replaced module gopkg.in/yaml.v3 enforce an indentation of 4 spaces, when 0
spaces are defined. This is sad, because the old behavior can not be reproduced.

Instead of using 4 spaces for indentation, when `yamlEncoder.SetIndent(0)` is
called, we call `yamlEncoder.SetIndent(2)` to use 2 spaces for indentation,
because it is closer to 0 instead 4 spaces.
2025-02-25 16:35:44 +01:00
31 changed files with 588 additions and 1487 deletions

View File

@ -1,727 +0,0 @@
---
kind: pipeline
type: kubernetes
name: linter
clone:
disable: true
platform:
os: linux
steps:
- name: clone
image: git.cryptic.systems/volker.raschek/git:1.4.0
- name: markdown lint
commands:
- markdownlint *.md
image: git.cryptic.systems/volker.raschek/markdownlint:0.43.0
resources:
limits:
cpu: 150
memory: 150M
- name: email-notification
environment:
SMTP_FROM_ADDRESS:
from_secret: smtp_from_address
SMTP_FROM_NAME:
from_secret: smtp_from_name
SMTP_HOST:
from_secret: smtp_host
SMTP_USERNAME:
from_secret: smtp_username
SMTP_PASSWORD:
from_secret: smtp_password
image: git.cryptic.systems/volker.raschek/drone-email:0.1.5
resources:
limits:
cpu: 150
memory: 150M
when:
status:
- changed
- failure
trigger:
event:
exclude:
- tag
---
kind: pipeline
type: docker
name: unit-test-amd64
clone:
disable: true
platform:
arch: amd64
steps:
- name: clone
image: git.cryptic.systems/volker.raschek/git:1.4.0
- name: unit-test
commands:
- go test -v ./...
image: docker.io/library/golang:1.24.0
trigger:
event:
exclude:
- tag
---
kind: pipeline
type: docker
name: unit-test-arm64
clone:
disable: true
platform:
arch: arm64
steps:
- name: clone
image: git.cryptic.systems/volker.raschek/git:1.4.0
- name: unit-test
commands:
- go test -v ./...
image: docker.io/library/golang:1.24.0
trigger:
event:
include:
- pull_request
- push
exclude:
- tag
---
kind: pipeline
type: docker
name: dry-run-amd64
clone:
disable: true
depends_on:
- linter
- unit-test-amd64
platform:
os: linux
arch: amd64
steps:
- name: clone
image: git.cryptic.systems/volker.raschek/git:1.4.0
- name: build
image: docker.io/plugins/docker:20.18.7
settings:
auto_tag: false
dockerfile: Dockerfile
dry_run: true
force_tag: true
no_cache: true
purge: true
mirror:
from_secret: docker_io_mirror
registry: git.cryptic.systems
repo: git.cryptic.systems/volker.raschek/dcmerge
tags: latest-amd64
username:
from_secret: git_cryptic_systems_container_registry_user
password:
from_secret: git_cryptic_systems_container_registry_password
- name: email-notification
environment:
SMTP_FROM_ADDRESS:
from_secret: smtp_from_address
SMTP_FROM_NAME:
from_secret: smtp_from_name
SMTP_HOST:
from_secret: smtp_host
SMTP_USERNAME:
from_secret: smtp_username
SMTP_PASSWORD:
from_secret: smtp_password
image: git.cryptic.systems/volker.raschek/drone-email:0.1.5
when:
status:
- changed
- failure
trigger:
branch:
exclude:
- master
event:
- pull_request
- push
repo:
- volker.raschek/dcmerge
---
kind: pipeline
type: docker
name: dry-run-arm64-v8
clone:
disable: true
depends_on:
- linter
- unit-test-arm64
platform:
os: linux
arch: arm64
steps:
- name: clone
image: git.cryptic.systems/volker.raschek/git:1.4.0
- name: build
image: docker.io/plugins/docker:20.18.7
settings:
auto_tag: false
dockerfile: Dockerfile
dry_run: true
force_tag: true
no_cache: true
purge: true
mirror:
from_secret: docker_io_mirror
registry: git.cryptic.systems
repo: git.cryptic.systems/volker.raschek/dcmerge
tags: latest-arm64-v8
username:
from_secret: git_cryptic_systems_container_registry_user
password:
from_secret: git_cryptic_systems_container_registry_password
- name: email-notification
environment:
SMTP_FROM_ADDRESS:
from_secret: smtp_from_address
SMTP_FROM_NAME:
from_secret: smtp_from_name
SMTP_HOST:
from_secret: smtp_host
SMTP_USERNAME:
from_secret: smtp_username
SMTP_PASSWORD:
from_secret: smtp_password
image: git.cryptic.systems/volker.raschek/drone-email:0.1.5
when:
status:
- changed
- failure
trigger:
branch:
exclude:
- master
event:
- pull_request
- push
repo:
- volker.raschek/dcmerge
---
kind: pipeline
type: docker
name: latest-amd64
clone:
disable: true
depends_on:
- linter
- unit-test-amd64
platform:
os: linux
arch: amd64
steps:
- name: clone
image: git.cryptic.systems/volker.raschek/git:1.4.0
- name: build
image: docker.io/plugins/docker:20.18.7
settings:
auto_tag: false
dockerfile: Dockerfile
force_tag: true
no_cache: true
purge: true
mirror:
from_secret: docker_io_mirror
registry: git.cryptic.systems
repo: git.cryptic.systems/volker.raschek/dcmerge
tags: latest-amd64
username:
from_secret: git_cryptic_systems_container_registry_user
password:
from_secret: git_cryptic_systems_container_registry_password
- name: email-notification
environment:
SMTP_FROM_ADDRESS:
from_secret: smtp_from_address
SMTP_FROM_NAME:
from_secret: smtp_from_name
SMTP_HOST:
from_secret: smtp_host
SMTP_USERNAME:
from_secret: smtp_username
SMTP_PASSWORD:
from_secret: smtp_password
image: git.cryptic.systems/volker.raschek/drone-email:0.1.5
when:
status:
- changed
- failure
trigger:
branch:
- master
event:
- cron
- push
repo:
- volker.raschek/dcmerge
---
kind: pipeline
type: docker
name: latest-arm64-v8
clone:
disable: true
depends_on:
- linter
- unit-test-arm64
platform:
os: linux
arch: arm64
steps:
- name: clone
image: git.cryptic.systems/volker.raschek/git:1.4.0
- name: build
image: docker.io/plugins/docker:20.18.7
settings:
auto_tag: false
dockerfile: Dockerfile
force_tag: true
no_cache: true
purge: true
mirror:
from_secret: docker_io_mirror
registry: git.cryptic.systems
repo: git.cryptic.systems/volker.raschek/dcmerge
tags: latest-arm64-v8
username:
from_secret: git_cryptic_systems_container_registry_user
password:
from_secret: git_cryptic_systems_container_registry_password
- name: email-notification
environment:
SMTP_FROM_ADDRESS:
from_secret: smtp_from_address
SMTP_FROM_NAME:
from_secret: smtp_from_name
SMTP_HOST:
from_secret: smtp_host
SMTP_USERNAME:
from_secret: smtp_username
SMTP_PASSWORD:
from_secret: smtp_password
image: git.cryptic.systems/volker.raschek/drone-email:0.1.5
when:
status:
- changed
- failure
trigger:
branch:
- master
event:
- cron
- push
repo:
- volker.raschek/dcmerge
---
kind: pipeline
type: kubernetes
name: latest-manifest
clone:
disable: true
depends_on:
- latest-amd64
- latest-arm64-v8
# docker.io/plugins/manifest only for amd64 architectures available
node_selector:
kubernetes.io/os: linux
kubernetes.io/arch: amd64
steps:
- name: clone
image: git.cryptic.systems/volker.raschek/git:1.4.0
- name: build-manifest
image: docker.io/plugins/manifest:1.4.0
settings:
auto_tag: false
ignore_missing: true
spec: manifest.tmpl
username:
from_secret: git_cryptic_systems_container_registry_user
password:
from_secret: git_cryptic_systems_container_registry_password
- name: email-notification
environment:
SMTP_FROM_ADDRESS:
from_secret: smtp_from_address
SMTP_FROM_NAME:
from_secret: smtp_from_name
SMTP_HOST:
from_secret: smtp_host
SMTP_USERNAME:
from_secret: smtp_username
SMTP_PASSWORD:
from_secret: smtp_password
image: git.cryptic.systems/volker.raschek/drone-email:0.1.5
resources:
limits:
cpu: 150
memory: 150M
when:
status:
- changed
- failure
trigger:
branch:
- master
event:
- cron
- push
repo:
- volker.raschek/dcmerge
---
kind: pipeline
type: kubernetes
name: latest-sync
clone:
disable: true
depends_on:
- latest-manifest
steps:
- name: clone
image: git.cryptic.systems/volker.raschek/git:1.4.0
- name: latest-sync
commands:
- skopeo sync --all --src=docker --src-creds=$SRC_CRED_USERNAME:$SRC_CRED_PASSWORD --dest=docker --dest-creds=$DEST_CRED_USERNAME:$DEST_CRED_PASSWORD git.cryptic.systems/volker.raschek/dcmerge docker.io/volkerraschek
environment:
SRC_CRED_USERNAME:
from_secret: git_cryptic_systems_container_registry_user
SRC_CRED_PASSWORD:
from_secret: git_cryptic_systems_container_registry_password
DEST_CRED_USERNAME:
from_secret: container_image_registry_user
DEST_CRED_PASSWORD:
from_secret: container_image_registry_password
image: quay.io/skopeo/stable:v1.17.0
- name: email-notification
environment:
SMTP_FROM_ADDRESS:
from_secret: smtp_from_address
SMTP_FROM_NAME:
from_secret: smtp_from_name
SMTP_HOST:
from_secret: smtp_host
SMTP_USERNAME:
from_secret: smtp_username
SMTP_PASSWORD:
from_secret: smtp_password
image: git.cryptic.systems/volker.raschek/drone-email:0.1.5
resources:
limits:
cpu: 150
memory: 150M
when:
status:
- changed
- failure
trigger:
branch:
- master
event:
- cron
- push
repo:
- volker.raschek/dcmerge
---
kind: pipeline
type: docker
name: tagged-amd64
clone:
disable: true
platform:
os: linux
arch: amd64
steps:
- name: clone
image: git.cryptic.systems/volker.raschek/git:1.4.0
- name: build
image: docker.io/plugins/docker:20.18.7
settings:
auto_tag: true
auto_tag_suffix: amd64
dockerfile: Dockerfile
force_tag: true
no_cache: true
purge: true
mirror:
from_secret: docker_io_mirror
registry: git.cryptic.systems
repo: git.cryptic.systems/volker.raschek/dcmerge
username:
from_secret: git_cryptic_systems_container_registry_user
password:
from_secret: git_cryptic_systems_container_registry_password
build_args:
- VERSION=${DRONE_TAG}
- name: email-notification
environment:
SMTP_FROM_ADDRESS:
from_secret: smtp_from_address
SMTP_FROM_NAME:
from_secret: smtp_from_name
SMTP_HOST:
from_secret: smtp_host
SMTP_USERNAME:
from_secret: smtp_username
SMTP_PASSWORD:
from_secret: smtp_password
image: git.cryptic.systems/volker.raschek/drone-email:0.1.5
when:
status:
- changed
- failure
trigger:
event:
- tag
repo:
- volker.raschek/dcmerge
---
kind: pipeline
type: docker
name: tagged-arm64-v8
clone:
disable: true
platform:
os: linux
arch: arm64
steps:
- name: clone
image: git.cryptic.systems/volker.raschek/git:1.4.0
- name: build
image: docker.io/plugins/docker:20.18.7
settings:
auto_tag: true
auto_tag_suffix: arm64-v8
dockerfile: Dockerfile
force_tag: true
no_cache: true
purge: true
mirror:
from_secret: docker_io_mirror
registry: git.cryptic.systems
repo: git.cryptic.systems/volker.raschek/dcmerge
username:
from_secret: git_cryptic_systems_container_registry_user
password:
from_secret: git_cryptic_systems_container_registry_password
build_args:
- VERSION=${DRONE_TAG}
- name: email-notification
environment:
SMTP_FROM_ADDRESS:
from_secret: smtp_from_address
SMTP_FROM_NAME:
from_secret: smtp_from_name
SMTP_HOST:
from_secret: smtp_host
SMTP_USERNAME:
from_secret: smtp_username
SMTP_PASSWORD:
from_secret: smtp_password
image: git.cryptic.systems/volker.raschek/drone-email:0.1.5
when:
status:
- changed
- failure
trigger:
event:
- tag
repo:
- volker.raschek/dcmerge
---
kind: pipeline
type: kubernetes
name: tagged-manifest
clone:
disable: true
depends_on:
- tagged-amd64
- tagged-arm64-v8
# docker.io/plugins/manifest only for amd64 architectures available
node_selector:
kubernetes.io/os: linux
kubernetes.io/arch: amd64
steps:
- name: clone
image: git.cryptic.systems/volker.raschek/git:1.4.0
- name: build-manifest
image: docker.io/plugins/manifest:1.4.0
settings:
auto_tag: true
ignore_missing: true
spec: manifest.tmpl
username:
from_secret: git_cryptic_systems_container_registry_user
password:
from_secret: git_cryptic_systems_container_registry_password
- name: email-notification
environment:
SMTP_FROM_ADDRESS:
from_secret: smtp_from_address
SMTP_FROM_NAME:
from_secret: smtp_from_name
SMTP_HOST:
from_secret: smtp_host
SMTP_USERNAME:
from_secret: smtp_username
SMTP_PASSWORD:
from_secret: smtp_password
image: git.cryptic.systems/volker.raschek/drone-email:0.1.5
resources:
limits:
cpu: 150
memory: 150M
when:
status:
- changed
- failure
trigger:
event:
- tag
repo:
- volker.raschek/dcmerge
---
kind: pipeline
type: kubernetes
name: tagged-sync
clone:
disable: true
depends_on:
- tagged-manifest
steps:
- name: clone
image: git.cryptic.systems/volker.raschek/git:1.4.0
- name: tagged-sync
commands:
- skopeo sync --all --src=docker --src-creds=$SRC_CRED_USERNAME:$SRC_CRED_PASSWORD --dest=docker --dest-creds=$DEST_CRED_USERNAME:$DEST_CRED_PASSWORD git.cryptic.systems/volker.raschek/dcmerge docker.io/volkerraschek
environment:
SRC_CRED_USERNAME:
from_secret: git_cryptic_systems_container_registry_user
SRC_CRED_PASSWORD:
from_secret: git_cryptic_systems_container_registry_password
DEST_CRED_USERNAME:
from_secret: container_image_registry_user
DEST_CRED_PASSWORD:
from_secret: container_image_registry_password
image: quay.io/skopeo/stable:v1.17.0
- name: email-notification
environment:
SMTP_FROM_ADDRESS:
from_secret: smtp_from_address
SMTP_FROM_NAME:
from_secret: smtp_from_name
SMTP_HOST:
from_secret: smtp_host
SMTP_USERNAME:
from_secret: smtp_username
SMTP_PASSWORD:
from_secret: smtp_password
image: git.cryptic.systems/volker.raschek/drone-email:0.1.5
resources:
limits:
cpu: 150
memory: 150M
when:
status:
- changed
- failure
trigger:
event:
- tag
repo:
- volker.raschek/dcmerge

View File

@ -0,0 +1,21 @@
name: Golang Tests
on:
pull_request:
types: [ "opened", "reopened", "synchronize" ]
push:
branches: [ '**' ]
tags-ignore: [ '**' ]
jobs:
unittest:
runs-on:
- ubuntu-latest
steps:
- uses: actions/checkout@v4.2.2
- uses: actions/setup-go@v5.5.0
with:
go-version: stable
- env:
GOPROXY: ${{ vars.GOPROXY }}
run: make test/unit

View File

@ -0,0 +1,20 @@
name: Markdown linter
on:
pull_request:
types: [ "opened", "reopened", "synchronize" ]
push:
branches: [ '**' ]
tags-ignore: [ '**' ]
workflow_dispatch: {}
jobs:
markdown-lint:
container:
image: git.cryptic.systems/volker.raschek/markdownlint:0.44.0
runs-on:
- ubuntu-latest
steps:
- uses: actions/checkout@v4.2.2
- name: Lint Markdown files
run: markdownlint --config .markdownlint.yaml .

View File

@ -0,0 +1,52 @@
name: Release
on:
push:
tags: [ '**' ]
permissions:
contents: write
jobs:
release:
runs-on:
- ubuntu-latest
steps:
- uses: actions/checkout@v4.2.2
- uses: docker/setup-qemu-action@v3.6.0
- uses: actions/setup-go@v5.5.0
with:
go-version: stable
- uses: docker/login-action@v3.4.0
with:
registry: git.cryptic.systems
username: ${{ github.repository_owner }}
password: ${{ secrets.GIT_CRYPTIC_SYSTEMS_PACKAGE_REGISTRY_TOKEN }}
- env:
GITEA_TOKEN: ${{ secrets.GIT_CRYPTIC_SYSTEMS_PACKAGE_REGISTRY_TOKEN }}
GONOSUMDB: ${{ vars.GONOSUMDB }}
GOPROXY: ${{ vars.GOPROXY }}
uses: goreleaser/goreleaser-action@v6.3.0
with:
version: "~> v2"
args: release --clean
sync-to-hub-docker-io:
needs:
- release
runs-on: ubuntu-latest
steps:
- name: Copy images to docker.io
run: |
TAG=$(echo ${{ github.ref_name }} | sed 's/v//gm')
apt-get update --yes
apt-get install --yes skopeo
skopeo copy \
--all \
--dest-password ${{ secrets.DOCKER_IO_PASSWORD }} \
--dest-username ${{ secrets.DOCKER_IO_USERNAME }} \
--src-password ${{ secrets.GIT_CRYPTIC_SYSTEMS_PACKAGE_REGISTRY_TOKEN }} \
--src-username volker.raschek \
docker://git.cryptic.systems/volker.raschek/dcmerge:${TAG} \
docker://docker.io/volkerraschek/dcmerge:${TAG}

View File

@ -0,0 +1,19 @@
name: Update Docker Hub Description
on:
push:
branches: [ 'master' ]
paths: [ 'README.md' ]
jobs:
update-description-on-hub-docker-io:
runs-on:
- ubuntu-latest
steps:
- uses: actions/checkout@v4.2.2
- uses: peter-evans/dockerhub-description@v4.0.2
with:
username: ${{ secrets.DOCKER_IO_USERNAME }}
password: ${{ secrets.DOCKER_IO_PASSWORD }}
repository: volkerraschek/dcmerge
readme-filepath: README.md

3
.gitignore vendored
View File

@ -1 +1,2 @@
dcmerge
dcmerge
coverage.txt

154
.goreleaser.yaml Normal file
View File

@ -0,0 +1,154 @@
project_name: dcmerge
archives:
- formats: [ "tar.xz" ]
files:
- README.md
- LICENSE
before:
hooks:
- go mod tidy
builds:
- main: main.go
binary: >-
{{ .ProjectName }}-
{{- .Version }}-
{{- .Os }}-
{{- if eq .Arch "amd64" }}amd64
{{- else if eq .Arch "amd64_v1" }}amd64
{{- else }}{{ .Arch }}{{ end }}
{{- if .Arm }}-{{ .Arm }}{{ end }}
env:
- CGO_ENABLED=0
- GONOSUMDB={{ .Env.GONOSUMDB }}
- GOPROXY={{ .Env.GOPROXY }}
goos:
- linux
goarch:
- amd64
- arm
- arm64
goarm:
- "6"
- "7"
flags:
- -trimpath
ldflags:
- -s -w -X 'main.version={{ trimprefix .Tag "v" }}'
changelog:
filters:
exclude:
- '^chore'
- '^docs'
- '^test'
- Merge pull request
- Merge branch
- go mod tidy
format: "{{.SHA}}: {{.Message}} (@{{.AuthorUsername}})"
groups:
- title: Features
regexp: '^.*?feat(\([[:word:]]+\))??!?:.+$'
order: 0
- title: "Bug fixes"
regexp: '^.*?fix(\([[:word:]]+\))??!?:.+$'
order: 1
- title: Others
order: 999
sort: asc
use: git
dockers:
- build_flag_templates:
- --label=org.opencontainers.image.created={{ time "2006-01-02T15:04:05Z07:00" }}
- --label=org.opencontainers.image.description={{ .ProjectName }}
- --label=org.opencontainers.image.documentation={{ .ProjectName }}
- --label=org.opencontainers.image.revision={{ .FullCommit }}
- --label=org.opencontainers.image.source={{ .GitURL }}
- --label=org.opencontainers.image.title={{ .ProjectName }}
- --label=org.opencontainers.image.url=https://git.cryptic.systems/volker.raschek/{{ .ProjectName }}
- --label=org.opencontainers.image.version={{ trimprefix .Tag "v" }}
- --platform=linux/amd64
- --pull
dockerfile: Dockerfile
goarch: amd64
goos: linux
image_templates:
- 'git.cryptic.systems/volker.raschek/{{ .ProjectName }}:{{ trimprefix .Tag "v" }}-amd64'
skip_push: false
use: buildx
- build_flag_templates:
- --label=org.opencontainers.image.created={{ time "2006-01-02T15:04:05Z07:00" }}
- --label=org.opencontainers.image.description={{ .ProjectName }}
- --label=org.opencontainers.image.documentation={{ .ProjectName }}
- --label=org.opencontainers.image.revision={{ .FullCommit }}
- --label=org.opencontainers.image.source={{ .GitURL }}
- --label=org.opencontainers.image.title={{ .ProjectName }}
- --label=org.opencontainers.image.url=https://git.cryptic.systems/volker.raschek/{{ .ProjectName }}
- --label=org.opencontainers.image.version={{ trimprefix .Tag "v" }}
- --platform=linux/arm/v6
- --pull
dockerfile: Dockerfile
goarch: arm
goarm: "6"
goos: linux
image_templates:
- 'git.cryptic.systems/volker.raschek/{{ .ProjectName }}:{{ trimprefix .Tag "v" }}-arm-v6'
skip_push: false
use: buildx
- build_flag_templates:
- --label=org.opencontainers.image.created={{ time "2006-01-02T15:04:05Z07:00" }}
- --label=org.opencontainers.image.description={{ .ProjectName }}
- --label=org.opencontainers.image.documentation={{ .ProjectName }}
- --label=org.opencontainers.image.revision={{ .FullCommit }}
- --label=org.opencontainers.image.source={{ .GitURL }}
- --label=org.opencontainers.image.title={{ .ProjectName }}
- --label=org.opencontainers.image.url=https://git.cryptic.systems/volker.raschek/{{ .ProjectName }}
- --label=org.opencontainers.image.version={{ trimprefix .Tag "v" }}
- --platform=linux/arm/v7
- --pull
dockerfile: Dockerfile
goarch: arm
goarm: "7"
goos: linux
image_templates:
- 'git.cryptic.systems/volker.raschek/{{ .ProjectName }}:{{ trimprefix .Tag "v" }}-arm-v7'
skip_push: false
use: buildx
- build_flag_templates:
- --label=org.opencontainers.image.created={{ time "2006-01-02T15:04:05Z07:00" }}
- --label=org.opencontainers.image.description={{ .ProjectName }}
- --label=org.opencontainers.image.documentation={{ .ProjectName }}
- --label=org.opencontainers.image.revision={{ .FullCommit }}
- --label=org.opencontainers.image.source={{ .GitURL }}
- --label=org.opencontainers.image.title={{ .ProjectName }}
- --label=org.opencontainers.image.url=https://git.cryptic.systems/volker.raschek/{{ .ProjectName }}
- --label=org.opencontainers.image.version={{ trimprefix .Tag "v" }}
- --platform=linux/arm64
- --pull
dockerfile: Dockerfile
goarch: arm64
goos: linux
image_templates:
- 'git.cryptic.systems/volker.raschek/{{ .ProjectName }}:{{ trimprefix .Tag "v" }}-arm64'
skip_push: false
use: buildx
docker_manifests:
- name_template: 'git.cryptic.systems/volker.raschek/{{ .ProjectName }}:{{ trimprefix .Tag "v" }}'
image_templates:
- 'git.cryptic.systems/volker.raschek/{{ .ProjectName }}:{{ trimprefix .Tag "v" }}-amd64'
- 'git.cryptic.systems/volker.raschek/{{ .ProjectName }}:{{ trimprefix .Tag "v" }}-arm-v6'
- 'git.cryptic.systems/volker.raschek/{{ .ProjectName }}:{{ trimprefix .Tag "v" }}-arm-v7'
- 'git.cryptic.systems/volker.raschek/{{ .ProjectName }}:{{ trimprefix .Tag "v" }}-arm64'
gitea_urls:
api: https://git.cryptic.systems/api/v1
download: https://git.cryptic.systems
version: 2

View File

@ -56,8 +56,6 @@ MD013:
tables: false
# Include headings
headings: true
# Include headings
headers: true
# Strict length checking
strict: false
# Stern length checking
@ -70,11 +68,6 @@ MD022:
# Blank lines below heading
lines_below: 1
# MD024/no-duplicate-heading/no-duplicate-header - Multiple headings with the same content
MD024:
# Only check sibling headings
allow_different_nesting: true
# MD025/single-title/single-h1 - Multiple top-level headings in the same document
MD025:
# Heading level

View File

@ -1,20 +1,5 @@
FROM docker.io/library/golang:1.23.4-alpine3.19 AS build
FROM scratch AS build
RUN apk add git make
WORKDIR /workspace
ADD ./ /workspace
RUN make install \
DESTDIR=/cache \
PREFIX=/usr \
VERSION=${VERSION}
FROM docker.io/library/alpine:3.21
COPY --from=build /cache /
WORKDIR /workspace
VOLUME [ "/workspace" ]
COPY dcmerge-* /usr/bin/dcmerge
ENTRYPOINT [ "/usr/bin/dcmerge" ]

View File

@ -26,11 +26,7 @@ DCMERGE_IMAGE_UNQUALIFIED=${DCMERGE_IMAGE_NAMESPACE}/${DCMERGE_IMAGE_NAME}:${DCM
# ==============================================================================
dcmerge:
CGO_ENABLED=0 \
GOPRIVATE=$(shell go env GOPRIVATE) \
GOPROXY=$(shell go env GOPROXY) \
GONOPROXY=$(shell go env GONOPROXY) \
GONOSUMDB=$(shell go env GONOSUMDB) \
GOSUMDB=$(shell go env GOSUMDB) \
go build -ldflags "-X 'main.version=${VERSION}'" -o ${@} main.go
# CLEAN
@ -43,15 +39,21 @@ clean:
# ==============================================================================
PHONY+=test/unit
test/unit:
go test -v -p 1 -coverprofile=coverage.txt -covermode=count -timeout 1200s ./pkg/...
CGO_ENABLED=0 \
GOPROXY=$(shell go env GOPROXY) \
go test -v -p 1 -coverprofile=coverage.txt -covermode=count -timeout 1200s ./pkg/...
PHONY+=test/integration
test/integration:
go test -v -p 1 -count=1 -timeout 1200s ./it/...
CGO_ENABLED=0 \
GOPROXY=$(shell go env GOPROXY) \
go test -v -p 1 -count=1 -timeout 1200s ./it/...
PHONY+=test/coverage
test/coverage: test/unit
go tool cover -html=coverage.txt
CGO_ENABLED=0 \
GOPROXY=$(shell go env GOPROXY) \
go tool cover -html=coverage.txt
# GOLANGCI-LINT
# ==============================================================================

View File

@ -1,6 +1,5 @@
# dcmerge
[![Build Status](https://drone.cryptic.systems/api/badges/volker.raschek/dcmerge/status.svg)](https://drone.cryptic.systems/volker.raschek/dcmerge)
[![Docker Pulls](https://img.shields.io/docker/pulls/volkerraschek/dcmerge)](https://hub.docker.com/r/volkerraschek/dcmerge)
`dcmerge` is a small program to merge docker-compose files from multiple sources. It is available via RPM and docker.

View File

@ -18,7 +18,7 @@ func Execute(version string) error {
Long: "To load completions",
DisableFlagsInUseLine: true,
ValidArgs: []string{"bash", "zsh", "fish", "powershell"},
Args: cobra.ExactValidArgs(1),
Args: cobra.MatchAll(cobra.ExactArgs(1)),
Run: func(cmd *cobra.Command, args []string) {
switch args[0] {
case "bash":
@ -100,12 +100,12 @@ func run(cmd *cobra.Command, args []string) error {
defer f.Close()
yamlEncoder := yaml.NewEncoder(f)
yamlEncoder.SetIndent(0)
yamlEncoder.SetIndent(2)
return yamlEncoder.Encode(dockerComposeConfig)
default:
yamlEncoder := yaml.NewEncoder(os.Stdout)
yamlEncoder.SetIndent(0)
yamlEncoder.SetIndent(2)
return yamlEncoder.Encode(dockerComposeConfig)
}

View File

@ -1,663 +0,0 @@
mode: count
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:26.50,28.9 2 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:28.9,30.3 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:32.2,32.9 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:33.33,34.14 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:35.33,36.14 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:37.33,38.15 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:39.10,44.45 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:49.50,51.2 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:54.49,56.2 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:59.50,61.2 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:64.49,66.2 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:69.40,70.45 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:70.45,71.29 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:71.29,73.4 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:76.2,76.43 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:76.43,77.28 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:77.28,79.4 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:82.2,82.45 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:82.45,83.29 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:83.29,85.4 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:88.2,88.43 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:88.43,89.28 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:89.28,91.4 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:96.51,97.9 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:98.33,99.14 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:100.33,101.9 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:111.10,116.44 5 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:121.47,122.9 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:123.33,124.14 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:125.33,126.9 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:136.10,141.40 5 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:145.58,146.25 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:146.25,148.3 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:151.73,152.45 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:152.45,153.21 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:153.21,154.12 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:157.3,157.35 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:157.35,159.4 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:159.9,161.4 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:165.70,166.42 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:166.42,167.20 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:167.20,168.12 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:171.3,171.34 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:171.34,173.4 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:173.9,175.4 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:179.73,180.45 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:180.45,181.21 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:181.21,182.12 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:185.3,185.35 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:185.35,187.4 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:187.9,189.4 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:193.70,194.42 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:194.42,195.20 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:195.20,196.12 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:199.3,199.34 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:199.34,201.4 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:201.9,203.4 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:207.54,208.26 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:208.26,210.3 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:213.69,214.45 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:214.45,215.21 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:215.21,216.12 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:219.3,219.35 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:219.35,221.4 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:221.9,223.4 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:227.66,228.42 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:228.42,229.20 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:229.20,230.12 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:233.3,233.34 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:233.34,235.4 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:235.9,237.4 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:241.69,242.45 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:242.45,243.21 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:243.21,244.12 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:247.3,247.35 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:247.35,249.4 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:249.9,251.4 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:255.66,256.42 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:256.42,257.20 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:257.20,258.12 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:261.3,261.34 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:261.34,263.4 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:263.9,265.4 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:269.26,276.2 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:285.51,287.9 2 5
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:287.9,289.3 1 2
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:291.2,291.9 1 3
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:292.34,293.14 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:294.34,295.14 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:296.34,297.15 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:298.10,301.30 1 3
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:305.54,306.9 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:307.34,308.14 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:309.34,310.9 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:320.10,321.39 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:325.50,326.9 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:327.34,328.14 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:329.34,330.9 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:340.10,341.35 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:345.66,346.32 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:346.32,348.3 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:351.62,352.32 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:352.32,354.3 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:357.28,362.2 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:369.59,371.9 2 5
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:371.9,373.3 1 2
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:375.2,375.9 1 3
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:376.42,377.14 1 1
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:378.42,379.14 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:380.42,381.15 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:382.10,383.51 1 2
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:387.70,388.9 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:389.42,390.14 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:391.42,392.9 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:402.10,403.52 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:407.66,408.9 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:409.42,410.14 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:411.42,412.9 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:422.10,423.48 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:427.91,428.55 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:428.55,429.55 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:429.55,431.4 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:435.87,436.55 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:436.55,437.55 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:437.55,439.4 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:443.36,447.2 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:454.71,456.9 2 4
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:456.9,458.3 1 2
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:460.2,460.9 1 2
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:461.54,462.14 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:463.54,464.14 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:465.54,466.15 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:467.10,468.56 1 2
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:472.48,474.2 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:481.50,483.9 2 4
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:483.9,485.3 1 2
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:487.2,487.9 1 2
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:488.33,489.14 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:490.33,491.14 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:492.33,493.15 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:494.10,495.31 1 2
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:501.51,502.22 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:502.22,504.3 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:509.47,510.22 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:510.22,512.3 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:515.26,517.2 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:537.55,538.45 1 3
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:538.45,540.18 2 3
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:540.18,542.4 1 3
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:545.2,545.14 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:549.49,550.33 1 3
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:550.33,552.18 2 3
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:552.18,554.4 1 3
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:557.2,557.14 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:570.48,571.28 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:571.28,572.24 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:572.24,574.4 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:576.2,576.14 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:580.75,581.35 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:581.35,583.41 2 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:583.41,585.4 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:588.2,588.14 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:592.61,593.35 1 2
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:593.35,595.16 2 2
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:595.16,597.4 1 2
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:600.2,600.14 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:604.55,605.35 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:605.35,607.15 2 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:607.15,609.4 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:612.2,612.14 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:616.51,618.9 2 189
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:618.9,620.3 1 2
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:622.2,622.9 1 187
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:623.34,624.14 1 2
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:625.34,626.14 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:627.34,628.15 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:629.10,642.42 1 185
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:646.54,647.9 1 80
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:648.34,649.14 1 1
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:650.34,651.9 1 1
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:661.10,674.45 13 79
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:680.50,681.9 1 80
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:682.34,683.14 1 1
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:684.34,685.9 1 1
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:695.10,708.41 13 79
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:712.77,713.48 1 79
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:713.48,714.81 1 3
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:714.81,716.4 1 1
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:720.79,721.50 1 79
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:721.50,722.83 1 3
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:722.83,724.4 1 2
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:728.65,729.34 1 79
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:729.34,730.59 1 3
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:730.59,732.4 1 1
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:736.65,737.9 1 79
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:738.40,739.20 1 1
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:740.40,741.14 1 1
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:742.40,743.9 1 77
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:744.10,745.36 1 1
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:749.71,750.9 1 79
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:751.52,752.32 1 1
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:753.52,754.14 1 1
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:755.52,756.9 1 73
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:757.10,758.44 1 5
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:758.44,759.29 1 4
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:759.29,760.13 1 1
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:763.4,764.33 2 3
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:764.33,766.5 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:771.55,772.9 1 79
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:773.44,774.18 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:775.44,776.14 1 1
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:777.44,778.14 1 78
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:779.10,780.9 1 79
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:784.67,785.39 1 79
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:785.39,786.68 1 3
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:786.68,788.4 1 1
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:792.59,793.9 1 79
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:794.40,795.20 1 1
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:796.40,797.14 1 1
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:798.40,799.9 1 73
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:800.10,801.32 1 5
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:801.32,802.23 1 4
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:802.23,803.13 1 1
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:806.4,807.27 2 3
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:807.27,809.5 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:814.81,815.9 1 79
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:816.44,817.24 1 1
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:818.44,819.14 1 2
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:820.44,821.9 1 74
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:822.10,823.39 1 4
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:823.39,824.45 1 3
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:824.45,826.5 1 2
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:826.10,828.5 1 1
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:833.55,834.9 1 79
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:835.38,836.18 1 1
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:837.38,838.14 1 1
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:839.38,840.9 1 71
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:841.10,843.24 1 7
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:843.24,844.26 1 6
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:844.26,845.18 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:848.4,850.27 2 6
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:850.27,852.12 2 7
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:854.48,855.19 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:857.56,858.19 1 1
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:860.56,861.19 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:863.56,864.19 1 4
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:868.4,868.39 1 1
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:873.61,874.33 1 79
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:874.33,875.59 1 2
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:875.59,877.4 1 1
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:881.68,882.9 1 79
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:883.42,884.22 1 1
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:885.42,886.14 1 1
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:887.42,888.9 1 75
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:889.10,890.38 1 3
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:894.61,895.9 1 79
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:896.42,897.22 1 1
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:898.42,899.14 1 1
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:900.42,901.9 1 75
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:902.10,903.34 1 3
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:903.34,905.40 2 2
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:905.40,907.5 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:912.73,913.48 1 79
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:913.48,914.30 1 3
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:914.30,915.12 1 1
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:918.3,918.55 1 2
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:918.55,920.4 1 1
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:924.75,925.50 1 79
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:925.50,926.31 1 3
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:926.31,927.12 1 1
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:930.3,930.57 1 2
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:930.57,932.4 1 1
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:936.61,937.32 1 79
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:937.32,938.20 1 3
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:938.20,939.12 1 1
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:942.3,942.39 1 2
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:942.39,944.4 1 1
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:948.61,949.9 1 79
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:950.40,951.20 1 1
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:952.40,953.14 1 1
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:954.40,955.9 1 77
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:956.10,957.32 1 1
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:961.67,962.9 1 79
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:963.52,964.32 1 1
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:965.52,966.14 1 1
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:967.52,968.9 1 74
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:969.10,970.44 1 4
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:970.44,971.29 1 3
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:971.29,972.13 1 1
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:975.4,976.32 2 2
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:981.51,982.9 1 79
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:983.44,984.18 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:985.44,986.14 1 1
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:987.44,988.9 1 78
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:989.10,990.23 1 1
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:990.23,992.4 1 1
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:996.63,997.39 1 79
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:997.39,998.26 1 3
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:998.26,999.12 1 1
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1002.3,1002.46 1 2
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1002.46,1004.4 1 1
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1008.55,1009.9 1 79
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1010.40,1011.20 1 1
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1012.40,1013.14 1 1
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1014.40,1015.9 1 74
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1016.10,1017.32 1 4
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1017.32,1018.23 1 3
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1018.23,1019.13 1 1
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1022.4,1023.26 2 2
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1028.77,1029.9 1 79
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1030.44,1031.24 1 1
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1032.44,1033.14 1 2
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1034.44,1035.9 1 75
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1036.10,1037.39 1 3
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1037.39,1038.45 1 2
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1038.45,1040.5 1 1
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1040.10,1042.5 1 1
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1047.51,1048.9 1 79
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1049.38,1050.18 1 1
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1051.38,1052.14 1 1
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1053.38,1054.9 1 70
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1055.10,1056.24 1 8
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1056.24,1057.26 1 7
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1057.26,1058.13 1 1
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1060.4,1060.31 1 6
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1065.57,1066.33 1 79
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1066.33,1067.23 1 3
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1067.23,1068.12 1 1
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1071.3,1071.40 1 2
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1071.40,1073.4 1 1
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1077.64,1078.9 1 79
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1079.42,1080.22 1 1
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1081.42,1082.14 1 1
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1083.42,1084.9 1 75
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1085.10,1086.34 1 3
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1090.57,1091.9 1 79
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1092.42,1093.22 1 1
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1094.42,1095.14 1 1
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1096.42,1097.9 1 74
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1098.10,1099.34 1 4
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1099.34,1100.24 1 3
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1100.24,1101.13 1 1
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1104.4,1105.32 2 2
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1112.50,1114.45 2 2
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1114.45,1116.18 2 3
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1116.18,1118.4 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1120.2,1120.31 1 2
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1124.44,1126.33 2 2
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1126.33,1128.18 2 3
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1128.18,1130.4 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1132.2,1132.19 1 2
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1142.48,1144.31 2 3
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1144.31,1145.10 1 9
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1146.30,1147.12 1 4
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1148.11,1149.31 1 5
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1152.2,1152.17 1 3
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1162.47,1164.31 2 14
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1164.31,1165.10 1 23
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1166.29,1167.12 1 14
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1168.11,1169.31 1 9
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1172.2,1172.17 1 14
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1176.45,1178.35 2 2
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1178.35,1181.10 2 2
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1182.43,1183.92 1 2
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1184.42,1185.119 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1188.2,1188.21 1 2
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1192.61,1195.2 2 2
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1198.55,1201.2 2 2
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1209.40,1213.2 3 11
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1216.67,1218.20 2 2
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1218.20,1220.3 1 2
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1220.8,1222.3 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1226.28,1240.2 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1247.58,1249.9 2 194
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1249.9,1251.3 1 2
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1253.2,1253.9 1 192
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1254.41,1255.14 1 177
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1256.41,1257.14 1 1
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1258.41,1259.15 1 1
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1260.10,1261.53 1 14
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1267.73,1268.9 1 1
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1269.41,1270.14 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1271.41,1272.9 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1282.10,1283.62 1 1
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1289.69,1290.9 1 9
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1291.41,1292.14 1 2
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1293.41,1294.9 1 2
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1304.10,1305.58 1 7
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1309.93,1310.9 1 1
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1311.47,1312.27 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1313.47,1314.14 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1315.47,1316.9 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1317.10,1318.43 1 1
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1322.89,1323.9 1 7
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1324.47,1325.27 1 2
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1326.47,1327.14 1 2
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1328.47,1329.9 1 4
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1330.10,1331.39 1 1
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1335.40,1339.2 1 14
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1347.68,1349.9 2 35
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1349.9,1351.3 1 2
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1353.2,1353.9 1 33
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1354.51,1355.14 1 4
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1356.51,1357.14 1 1
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1358.51,1359.15 1 1
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1360.10,1362.63 1 28
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1368.101,1369.9 1 9
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1370.51,1371.14 1 1
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1372.51,1373.9 1 1
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1378.51,1380.14 2 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1381.10,1383.72 2 8
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1389.97,1390.9 1 8
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1391.51,1392.14 1 1
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1393.51,1394.9 1 1
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1399.51,1401.14 2 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1402.10,1404.68 2 7
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1408.97,1409.9 1 8
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1410.42,1411.22 1 1
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1412.42,1413.14 1 1
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1414.42,1415.9 1 6
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1416.10,1417.38 1 1
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1421.109,1422.9 1 8
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1423.54,1424.34 1 1
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1425.54,1426.14 1 1
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1427.54,1428.9 1 5
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1429.10,1430.50 1 2
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1434.93,1435.9 1 7
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1436.42,1437.22 1 1
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1438.42,1439.14 1 1
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1440.42,1441.9 1 5
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1442.10,1443.34 1 1
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1447.105,1448.9 1 7
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1449.54,1450.34 1 1
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1451.54,1452.14 1 1
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1453.54,1454.9 1 5
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1455.10,1456.46 1 1
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1460.58,1465.2 1 3
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1473.75,1475.9 2 72
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1475.9,1477.3 1 2
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1479.2,1479.9 1 70
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1480.58,1481.14 1 38
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1482.58,1483.14 1 2
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1484.58,1485.15 1 2
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1486.10,1488.54 1 30
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1494.120,1495.9 1 10
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1496.58,1497.14 1 1
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1498.58,1499.9 1 2
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1509.10,1511.67 2 8
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1517.116,1518.9 1 7
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1519.58,1520.14 1 1
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1521.58,1522.9 1 2
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1532.10,1534.63 2 5
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1538.77,1539.25 1 8
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1539.25,1541.3 1 4
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1544.81,1545.27 1 8
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1545.27,1547.3 1 4
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1550.73,1551.23 1 5
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1551.23,1553.3 1 3
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1556.77,1557.27 1 5
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1557.27,1559.3 1 3
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1562.70,1564.2 1 6
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1571.59,1573.9 2 33
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1573.9,1575.3 1 2
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1577.2,1577.9 1 31
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1578.42,1579.14 1 2
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1580.42,1581.14 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1582.42,1583.15 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1584.10,1585.56 1 29
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1591.76,1592.9 1 7
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1593.42,1594.14 1 1
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1595.42,1596.9 1 2
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1605.42,1607.14 2 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1608.10,1609.53 1 5
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1615.72,1616.9 1 5
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1617.42,1618.14 1 1
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1619.42,1620.9 1 2
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1629.42,1631.14 2 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1632.10,1633.49 1 3
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1637.69,1638.32 1 5
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1638.32,1639.58 1 6
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1639.58,1641.4 1 2
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1645.65,1646.32 1 3
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1646.32,1647.58 1 3
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1647.58,1649.4 1 1
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1653.42,1657.2 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1665.58,1667.9 2 188
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1667.9,1669.3 1 2
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1671.2,1671.9 1 186
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1672.41,1673.14 1 165
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1674.41,1675.14 1 1
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1676.41,1677.15 1 1
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1678.10,1680.41 1 20
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1686.75,1687.9 1 7
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1688.41,1689.14 1 1
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1690.41,1691.9 1 2
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1700.10,1702.50 2 5
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1708.71,1709.9 1 7
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1710.41,1711.14 1 1
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1712.41,1713.9 1 2
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1722.10,1724.46 2 5
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1728.60,1729.22 1 5
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1729.22,1731.3 1 2
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1732.2,1732.17 1 3
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1735.79,1736.29 1 5
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1736.29,1738.3 1 1
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1741.56,1742.22 1 5
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1742.22,1744.3 1 2
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1747.75,1748.29 1 5
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1748.29,1750.3 1 1
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1753.42,1757.2 1 17
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1765.65,1767.9 2 47
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1767.9,1769.3 1 2
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1771.2,1771.9 1 45
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1772.48,1773.14 1 12
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1774.48,1775.14 1 1
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1776.48,1777.15 1 1
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1778.10,1780.40 1 32
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1786.94,1787.9 1 7
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1788.48,1789.14 1 1
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1790.48,1791.9 1 2
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1801.10,1803.53 2 5
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1809.90,1810.9 1 7
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1811.48,1812.14 1 1
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1813.48,1814.9 1 2
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1824.10,1826.49 2 5
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1830.65,1831.21 1 5
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1831.21,1833.3 1 3
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1834.2,1834.16 1 2
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1837.65,1838.21 1 5
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1838.21,1840.3 1 3
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1841.2,1841.16 1 2
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1844.61,1845.21 1 5
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1845.21,1847.3 1 3
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1850.61,1851.21 1 5
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1851.21,1853.3 1 3
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1856.54,1858.2 1 3
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1865.50,1867.9 2 14
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1867.9,1869.3 1 2
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1871.2,1871.9 1 12
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1872.33,1873.14 1 2
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1874.33,1875.14 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1876.33,1877.15 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1878.10,1879.39 1 10
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1885.51,1886.9 1 5
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1887.33,1888.14 1 1
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1889.33,1890.9 1 2
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1899.10,1900.46 1 3
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1904.47,1905.9 1 4
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1906.33,1907.14 1 1
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1908.33,1909.9 1 2
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1918.10,1919.42 1 2
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1923.51,1924.16 1 3
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1924.16,1926.3 1 2
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1927.2,1927.19 1 1
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1930.54,1931.28 1 2
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1931.28,1933.3 1 1
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1936.26,1940.2 1 2
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1944.61,1945.32 1 33
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1945.32,1946.13 1 25
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1946.13,1948.4 1 12
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1950.2,1950.14 1 21
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1953.60,1954.49 1 1643
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1954.49,1956.25 1 3275
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1956.25,1957.26 1 243
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1957.26,1958.31 1 275
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1958.31,1959.19 1 232
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1962.4,1962.16 1 11
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1964.3,1964.14 1 3264
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1967.2,1967.63 1 1643
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1970.60,1974.2 3 22
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1985.66,1989.9 3 4
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1990.44,1991.59 1 3
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1992.24,1993.23 1 1
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1996.2,1997.9 2 4
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:1998.44,1999.59 1 2
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:2000.24,2001.23 1 2
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:2004.2,2004.34 1 4
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:2007.61,2011.42 4 8
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:2011.42,2014.3 2 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:2015.2,2015.22 1 8
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:2025.36,2027.2 1 12
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:2030.34,2032.2 1 27
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:2035.37,2037.2 1 11
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:2040.34,2042.2 1 94
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:2045.36,2047.2 1 13
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:2051.31,2052.9 1 9
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:2053.23,2054.76 1 2
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:2055.10,2056.24 1 7
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:2061.33,2065.9 3 43
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:2066.25,2067.12 1 6
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:2068.13,2069.12 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:2072.2,2072.19 1 37
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:2076.35,2080.9 3 35
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:2081.25,2082.12 1 2
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:2083.13,2084.12 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:2087.2,2087.19 1 33
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:2091.36,2095.9 3 26
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:2096.25,2097.12 1 6
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:2098.13,2099.12 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:2102.2,2102.19 1 20
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:2107.31,2108.9 1 38
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:2109.23,2110.76 1 24
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:2111.10,2112.24 1 14
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:2117.33,2121.9 3 133
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:2122.25,2123.12 1 6
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:2124.13,2125.12 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:2128.2,2128.19 1 127
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:2132.35,2136.9 3 75
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:2137.25,2138.12 1 2
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:2139.13,2140.12 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/config.go:2143.2,2143.19 1 73
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/equalable.go:8.53,9.9 1 3
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/equalable.go:10.38,11.14 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/equalable.go:12.38,13.15 1 1
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/equalable.go:14.38,15.15 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/equalable.go:16.10,18.25 1 2
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/equalable.go:18.25,19.26 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/equalable.go:19.26,20.35 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/equalable.go:20.35,21.19 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/equalable.go:24.4,24.16 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/equalable.go:26.3,26.14 1 2
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/equalable.go:31.50,35.2 1 2
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/equalable.go:38.64,39.50 1 176
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/equalable.go:39.50,41.34 1 352
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/equalable.go:41.34,42.35 1 18
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/equalable.go:42.35,44.27 1 22
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/equalable.go:44.27,45.19 1 18
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/equalable.go:48.4,48.16 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/equalable.go:50.3,50.14 1 352
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/equalable.go:53.2,53.55 1 176
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/equalable.go:57.59,58.9 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/equalable.go:59.16,60.15 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose/equalable.go:61.10,63.17 2 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/fetcher/fetcher.go:14.61,17.30 2 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/fetcher/fetcher.go:17.30,19.17 2 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/fetcher/fetcher.go:19.17,21.4 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/fetcher/fetcher.go:23.3,23.10 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/fetcher/fetcher.go:24.80,26.18 2 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/fetcher/fetcher.go:26.18,28.5 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/fetcher/fetcher.go:30.4,30.76 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/fetcher/fetcher.go:31.42,32.15 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/fetcher/fetcher.go:33.11,35.18 2 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/fetcher/fetcher.go:35.18,37.5 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/fetcher/fetcher.go:39.4,39.76 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/fetcher/fetcher.go:43.2,43.34 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/fetcher/fetcher.go:48.73,50.16 2 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/fetcher/fetcher.go:50.16,52.3 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/fetcher/fetcher.go:54.2,55.16 2 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/fetcher/fetcher.go:55.16,57.3 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/fetcher/fetcher.go:58.2,60.38 2 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/fetcher/fetcher.go:60.38,62.3 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/fetcher/fetcher.go:64.2,68.16 4 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/fetcher/fetcher.go:68.16,70.3 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/fetcher/fetcher.go:72.2,72.27 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/fetcher/fetcher.go:75.76,77.9 2 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/fetcher/fetcher.go:78.18,79.18 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/fetcher/fetcher.go:80.24,81.57 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/fetcher/fetcher.go:84.2,85.16 2 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/fetcher/fetcher.go:85.16,87.3 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/fetcher/fetcher.go:88.2,94.16 5 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/fetcher/fetcher.go:94.16,96.3 1 0
git.cryptic.systems/volker.raschek/dcmerge/pkg/fetcher/fetcher.go:98.2,98.27 1 0

View File

@ -1,20 +0,0 @@
image: git.cryptic.systems/volker.raschek/dcmerge:{{#if build.tag}}{{trimPrefix "v" build.tag}}{{else}}latest{{/if}}
{{#if build.tags}}
tags:
{{#each build.tags}}
- {{this}}
{{/each}}
- "latest"
{{/if}}
manifests:
-
image: git.cryptic.systems/volker.raschek/dcmerge:{{#if build.tag}}{{trimPrefix "v" build.tag}}{{else}}latest{{/if}}-amd64
platform:
architecture: amd64
os: linux
-
image: git.cryptic.systems/volker.raschek/dcmerge:{{#if build.tag}}{{trimPrefix "v" build.tag}}{{else}}latest{{/if}}-arm64-v8
platform:
architecture: arm64
os: linux
variant: v8

View File

@ -71,24 +71,36 @@ func (c *Config) ExistsVolume(name string) bool {
func (c *Config) Merge(config *Config) {
for name, network := range config.Networks {
if !c.ExistsNetwork(name) {
if c.Networks == nil {
c.Networks = make(map[string]*Network)
}
c.Networks[name] = network
}
}
for name, secret := range config.Secrets {
if !c.ExistsSecret(name) {
if c.Secrets == nil {
c.Secrets = make(map[string]*Secret)
}
c.Secrets[name] = secret
}
}
for name, service := range config.Services {
if !c.ExistsService(name) {
if c.Services == nil {
c.Services = make(map[string]*Service)
}
c.Services[name] = service
}
}
for name, volume := range config.Volumes {
if !c.ExistsVolume(name) {
if c.Volumes == nil {
c.Volumes = make(map[string]*Volume)
}
c.Volumes[name] = volume
}
}
@ -519,6 +531,7 @@ func NewSecret() *Secret {
}
type Service struct {
Command []string `json:"command,omitempty" yaml:"command,omitempty"`
CapabilitiesAdd []string `json:"cap_add,omitempty" yaml:"cap_add,omitempty"`
CapabilitiesDrop []string `json:"cap_drop,omitempty" yaml:"cap_drop,omitempty"`
DependsOnContainer *DependsOnContainer `json:"depends_on,omitempty" yaml:"depends_on,omitempty"`
@ -629,7 +642,8 @@ func (s *Service) Equal(equalable Equalable) bool {
case s == nil && service != nil:
return false
default:
return equalSlice(s.CapabilitiesAdd, service.CapabilitiesAdd) &&
return equalSlice(s.Command, service.Command) &&
equalSlice(s.CapabilitiesAdd, service.CapabilitiesAdd) &&
equalSlice(s.CapabilitiesDrop, service.CapabilitiesDrop) &&
s.DependsOnContainer.Equal(service.DependsOnContainer) &&
s.Deploy.Equal(service.Deploy) &&
@ -661,6 +675,7 @@ func (s *Service) MergeExistingWin(service *Service) {
// fallthrough
default:
s.mergeExistingWinCommand(service.Command)
s.mergeExistingWinCapabilitiesAdd(service.CapabilitiesAdd)
s.mergeExistingWinCapabilitiesDrop(service.CapabilitiesDrop)
s.mergeExistingWinDependsOnContainer(service.DependsOnContainer)
@ -695,6 +710,7 @@ func (s *Service) MergeLastWin(service *Service) {
// fallthrough
default:
s.mergeLastWinCommand(service.Command)
s.mergeLastWinCapabilitiesAdd(service.CapabilitiesAdd)
s.mergeLastWinCapabilitiesDrop(service.CapabilitiesDrop)
s.mergeLastWinDependsOnContainer(service.DependsOnContainer)
@ -711,6 +727,13 @@ func (s *Service) MergeLastWin(service *Service) {
}
}
func (s *Service) mergeExistingWinCommand(command []string) {
if len(s.Command) > 0 {
return
}
s.Command = command
}
func (s *Service) mergeExistingWinCapabilitiesAdd(capabilitiesAdd []string) {
for _, capabilityAdd := range capabilitiesAdd {
if !existsInSlice(s.CapabilitiesAdd, capabilityAdd) && len(capabilityAdd) > 0 {
@ -923,6 +946,12 @@ func (s *Service) mergeExistingWinVolumes(volumes []string) {
}
}
func (s *Service) mergeLastWinCommand(command []string) {
if len(command) > 0 {
s.Command = command
}
}
func (s *Service) mergeLastWinCapabilitiesAdd(capabilitiesAdd []string) {
for _, capabilityAdd := range capabilitiesAdd {
if len(capabilityAdd) <= 0 {
@ -1242,7 +1271,11 @@ func (s *Service) SetVolume(src string, dest string, perm string) {
}
}
const ServiceDependsOnConditionServiceStarted string = "service_started"
const (
ServiceDependsOnConditionServiceCompletedSuccessfully string = "service_completed_successfully"
ServiceDependsOnConditionServiceHealthy string = "service_healthy"
ServiceDependsOnConditionServiceStarted string = "service_started"
)
// DependsOnContainer is a wrapper to handle different YAML type formats of DependsOn.
type DependsOnContainer struct {
@ -1272,7 +1305,25 @@ func (sdoc *DependsOnContainer) Equal(equalable Equalable) bool {
// MarshalYAML implements the MarshalYAML interface to customize the behavior when being marshaled into a YAML document.
func (sdoc *DependsOnContainer) MarshalYAML() (interface{}, error) {
return sdoc.DependsOn, nil
var foundAnotherCondition bool = false
var dependencyNames []string
for dependencyName, dependencyDefinition := range sdoc.DependsOn {
if dependencyDefinition.Condition == ServiceDependsOnConditionServiceStarted {
dependencyNames = append(dependencyNames, dependencyName)
continue
}
foundAnotherCondition = true
}
switch {
case foundAnotherCondition:
return sdoc.DependsOn, nil
case !foundAnotherCondition && len(dependencyNames) > 0:
return dependencyNames, nil
default:
return nil, nil
}
}
// UnmarshalYAML implements the UnmarshalYAML interface to customize the behavior when being unmarshaled into a YAML

View File

@ -1,12 +1,90 @@
package dockerCompose_test
import (
"bytes"
"embed"
"strings"
"testing"
"git.cryptic.systems/volker.raschek/dcmerge/pkg/domain/dockerCompose"
"github.com/stretchr/testify/require"
"gopkg.in/yaml.v3"
)
//go:embed test/assets/merge
var testAssetsMerge embed.FS
func TestConfig_Merge(t *testing.T) {
require := require.New(t)
testAssetPath := "test/assets/merge"
testAssetMergeDirEntries, err := testAssetsMerge.ReadDir(testAssetPath)
require.NoError(err)
// iterate over testcase directories
for i, mergeDirEntry := range testAssetMergeDirEntries {
if !mergeDirEntry.IsDir() {
continue
}
// iterate over files in testcase directories
testCaseAssetPath := testAssetPath + "/" + mergeDirEntry.Name()
testCaseDirEntries, err := testAssetsMerge.ReadDir(testCaseAssetPath)
require.NoError(err)
expectedDockerComposeConfig := &dockerCompose.Config{}
dockerComposeConfigs := []*dockerCompose.Config{}
for _, testCaseDirEntry := range testCaseDirEntries {
if testCaseDirEntry.IsDir() {
continue
}
dockerComposeConfigFile := testAssetPath + "/" + mergeDirEntry.Name() + "/" + testCaseDirEntry.Name()
b, err := testAssetsMerge.ReadFile(dockerComposeConfigFile)
require.NoError(err)
yamlDecoder := yaml.NewDecoder(bytes.NewReader(b))
switch {
case strings.HasPrefix(testCaseDirEntry.Name(), "expectedResult"):
err = yamlDecoder.Decode(expectedDockerComposeConfig)
require.NoError(err)
case strings.HasSuffix(testCaseDirEntry.Name(), ".yml") || strings.HasSuffix(testCaseDirEntry.Name(), ".yaml"):
dockerComposeConfig := &dockerCompose.Config{}
err = yamlDecoder.Decode(dockerComposeConfig)
require.NoError(err)
dockerComposeConfigs = append(dockerComposeConfigs, dockerComposeConfig)
}
}
actualDockerComposeConfig := &dockerCompose.Config{}
for _, dockerComposeConfig := range dockerComposeConfigs {
actualDockerComposeConfig.Merge(dockerComposeConfig)
}
expectedBytes := make([]byte, 0)
expectedBytesBuffer := bytes.NewBuffer(expectedBytes)
yamlEncoder := yaml.NewEncoder(expectedBytesBuffer)
err = yamlEncoder.Encode(expectedDockerComposeConfig)
require.NoError(err)
err = yamlEncoder.Close()
require.NoError(err)
actualBytes := make([]byte, 0)
actualBytesBuffer := bytes.NewBuffer(actualBytes)
yamlEncoder = yaml.NewEncoder(actualBytesBuffer)
err = yamlEncoder.Encode(actualDockerComposeConfig)
require.NoError(err)
err = yamlEncoder.Close()
require.NoError(err)
require.Equal(expectedBytesBuffer.String(), actualBytesBuffer.String(), "TestCase %v", i)
}
}
func TestNetwork_Equal(t *testing.T) {
require := require.New(t)
@ -223,6 +301,7 @@ func TestService_Equal(t *testing.T) {
},
{
equalableA: &dockerCompose.Service{
Command: []string{},
CapabilitiesAdd: []string{},
CapabilitiesDrop: []string{},
DependsOnContainer: &dockerCompose.DependsOnContainer{},
@ -238,6 +317,7 @@ func TestService_Equal(t *testing.T) {
Volumes: []string{},
},
equalableB: &dockerCompose.Service{
Command: []string{},
CapabilitiesAdd: []string{},
CapabilitiesDrop: []string{},
DependsOnContainer: &dockerCompose.DependsOnContainer{},
@ -254,6 +334,15 @@ func TestService_Equal(t *testing.T) {
},
expectedResult: true,
},
{
equalableA: &dockerCompose.Service{
Command: []string{"/usr/bin/cp", "--recursive", "/tmp/foo.txt", "/tmp/bar.txt"},
},
equalableB: &dockerCompose.Service{
Command: []string{"/usr/bin/cp", "--recursive", "/tmp/foo.txt", "/tmp/bar.txt"},
},
expectedResult: true,
},
{
equalableA: &dockerCompose.Service{
CapabilitiesAdd: []string{"NET_ADMIN"},
@ -558,6 +647,52 @@ func TestService_MergeExistingWin(t *testing.T) {
expectedService: &dockerCompose.Service{},
},
// Command
{
serviceDeploymentA: &dockerCompose.Service{
Command: []string{"/usr/bin/cp", "--recursive", "/tmp/foo.txt", "/tmp/bar.txt"},
},
serviceDeploymentB: &dockerCompose.Service{
Command: []string{},
},
expectedService: &dockerCompose.Service{
Command: []string{"/usr/bin/cp", "--recursive", "/tmp/foo.txt", "/tmp/bar.txt"},
},
},
{
serviceDeploymentA: &dockerCompose.Service{
Command: []string{},
},
serviceDeploymentB: &dockerCompose.Service{
Command: []string{"/usr/bin/cp", "--recursive", "/tmp/foo.txt", "/tmp/bar.txt"},
},
expectedService: &dockerCompose.Service{
Command: []string{"/usr/bin/cp", "--recursive", "/tmp/foo.txt", "/tmp/bar.txt"},
},
},
{
serviceDeploymentA: &dockerCompose.Service{
Command: []string{"/usr/bin/cp", "--recursive", "/tmp/foo.txt", "/tmp/bar.txt"},
},
serviceDeploymentB: &dockerCompose.Service{
Command: []string{"/usr/bin/cp", "--recursive", "/tmp/foo.txt", "/tmp/bar.txt"},
},
expectedService: &dockerCompose.Service{
Command: []string{"/usr/bin/cp", "--recursive", "/tmp/foo.txt", "/tmp/bar.txt"},
},
},
{
serviceDeploymentA: &dockerCompose.Service{
Command: []string{"/usr/bin/cp", "--recursive", "/tmp/foo.txt", "/tmp/bar.txt"},
},
serviceDeploymentB: &dockerCompose.Service{
Command: []string{""},
},
expectedService: &dockerCompose.Service{
Command: []string{"/usr/bin/cp", "--recursive", "/tmp/foo.txt", "/tmp/bar.txt"},
},
},
// CapabilitiesAdd
{
serviceDeploymentA: &dockerCompose.Service{
@ -1542,6 +1677,52 @@ func TestService_MergeLastWin(t *testing.T) {
expectedService: &dockerCompose.Service{},
},
// Command
{
serviceDeploymentA: &dockerCompose.Service{
Command: []string{"/usr/bin/cp", "--recursive", "/tmp/foo.txt", "/tmp/bar.txt"},
},
serviceDeploymentB: &dockerCompose.Service{
Command: []string{},
},
expectedService: &dockerCompose.Service{
Command: []string{"/usr/bin/cp", "--recursive", "/tmp/foo.txt", "/tmp/bar.txt"},
},
},
{
serviceDeploymentA: &dockerCompose.Service{
Command: []string{},
},
serviceDeploymentB: &dockerCompose.Service{
Command: []string{"/usr/bin/cp", "--recursive", "/tmp/foo.txt", "/tmp/bar.txt"},
},
expectedService: &dockerCompose.Service{
Command: []string{"/usr/bin/cp", "--recursive", "/tmp/foo.txt", "/tmp/bar.txt"},
},
},
{
serviceDeploymentA: &dockerCompose.Service{
Command: []string{"/usr/bin/cp", "--recursive", "/tmp/foo.txt", "/tmp/bar.txt"},
},
serviceDeploymentB: &dockerCompose.Service{
Command: []string{"/usr/bin/cp", "--recursive", "/tmp/foo.txt", "/tmp/bar.txt"},
},
expectedService: &dockerCompose.Service{
Command: []string{"/usr/bin/cp", "--recursive", "/tmp/foo.txt", "/tmp/bar.txt"},
},
},
{
serviceDeploymentA: &dockerCompose.Service{
Command: []string{"/usr/bin/cp", "--recursive", "/tmp/foo.txt", "/tmp/bar.txt"},
},
serviceDeploymentB: &dockerCompose.Service{
Command: []string{""},
},
expectedService: &dockerCompose.Service{
Command: []string{""},
},
},
// CapabilitiesAdd
{
serviceDeploymentA: &dockerCompose.Service{

View File

@ -0,0 +1,6 @@
services:
frontend:
depends_on:
backend:
condition: service_started
image: library/frontend:latest

View File

@ -0,0 +1,3 @@
services:
backend:
image: library/backend:latest

View File

@ -0,0 +1,7 @@
services:
backend:
image: library/backend:latest
frontend:
depends_on:
- backend
image: library/frontend:latest

View File

@ -0,0 +1,5 @@
services:
frontend:
depends_on:
- backend
image: library/frontend:latest

View File

@ -0,0 +1,3 @@
services:
backend:
image: library/backend:latest

View File

@ -0,0 +1,7 @@
services:
backend:
image: library/backend:latest
frontend:
depends_on:
- backend
image: library/frontend:latest

View File

@ -0,0 +1,6 @@
services:
frontend:
depends_on:
backend:
condition: service_completed_successfully
image: library/frontend:latest

View File

@ -0,0 +1,3 @@
services:
backend:
image: library/backend:latest

View File

@ -0,0 +1,8 @@
services:
backend:
image: library/backend:latest
frontend:
depends_on:
backend:
condition: service_completed_successfully
image: library/frontend:latest

View File

@ -0,0 +1,4 @@
services:
frontend:
command: [ "/usr/bin/cp", "--recursive", "--force", "/tmp/foo.txt", "/tmp/bar.txt" ]
image: library/frontend:latest

View File

@ -0,0 +1,4 @@
services:
frontend:
command: [ "/usr/bin/cp", "--recursive", "--force", "/tmp/bar.txt", "/tmp/foo.txt"]
image: library/frontend:latest

View File

@ -0,0 +1,8 @@
services:
backend:
image: library/backend:latest
frontend:
depends_on:
backend:
condition: service_completed_successfully
image: library/frontend:latest

View File

@ -1,41 +1,10 @@
{
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"assignees": [ "volker.raschek" ],
"labels": [ "renovate" ],
"packageRules": [
{
"addLabels": [ "renovate/droneci", "renovate/automerge" ],
"automerge": true,
"matchManagers": "droneci",
"matchUpdateTypes": [ "minor", "patch"]
},
{
"description": "Automatically update patch version of used container images in docker files",
"addLabels": [ "renovate/container-image", "renovate/automerge" ],
"automerge": true,
"matchBaseBranches": [ "master" ],
"matchManagers": [ "dockerfile" ],
"matchUpdateTypes": [ "minor", "patch" ]
},
{
"description": "Automatically update minor and patch versions of go modules",
"addLabels": [ "renovate/gomod", "renovate/automerge" ],
"automerge": true,
"matchManagers": [ "gomod" ],
"matchUpdateTypes": [ "minor", "patch" ]
},
{
"description": "Disable major update version of go modules",
"enabled": false,
"matchManagers": [ "gomod" ],
"matchPackageNames": [
"gopkg.in/yaml.v2"
]
}
],
"postUpdateOptions": [
"gomodTidy"
],
"rebaseLabel": "renovate/rebase",
"rebaseWhen": "behind-base-branch"
"extends": [
"local>volker.raschek/renovate-config:default#master",
"local>volker.raschek/renovate-config:container#master",
"local>volker.raschek/renovate-config:actions#master",
"local>volker.raschek/renovate-config:golang#master",
"local>volker.raschek/renovate-config:regexp#master"
]
}