feat(service): upgrade docker registry template (#7034)
Co-authored-by: 🏔️ Peak <122374094+peaklabs-dev@users.noreply.github.com>
This commit is contained in:
parent
99e3c3ea9f
commit
eaa668036f
4 changed files with 63 additions and 17 deletions
|
|
@ -515,6 +515,31 @@ public function extraFields()
|
|||
}
|
||||
$fields->put('RabbitMQ', $data->toArray());
|
||||
break;
|
||||
case $image->is('registry'):
|
||||
$data = collect([]);
|
||||
$registry_user = $this->environment_variables()->where('key', 'SERVICE_USER_REGISTRY')->first();
|
||||
$registry_password = $this->environment_variables()->where('key', 'SERVICE_PASSWORD_REGISTRY')->first();
|
||||
if ($registry_user) {
|
||||
$data = $data->merge([
|
||||
'Registry User' => [
|
||||
'key' => data_get($registry_user, 'key'),
|
||||
'value' => data_get($registry_user, 'value'),
|
||||
'rules' => 'required',
|
||||
],
|
||||
]);
|
||||
}
|
||||
if ($registry_password) {
|
||||
$data = $data->merge([
|
||||
'Registry Password' => [
|
||||
'key' => data_get($registry_password, 'key'),
|
||||
'value' => data_get($registry_password, 'value'),
|
||||
'rules' => 'required',
|
||||
'isPassword' => true,
|
||||
],
|
||||
]);
|
||||
}
|
||||
$fields->put('Docker Registry', $data->toArray());
|
||||
break;
|
||||
case $image->contains('tolgee'):
|
||||
$data = collect([]);
|
||||
$admin_password = $this->environment_variables()->where('key', 'SERVICE_PASSWORD_TOLGEE')->first();
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
# documentation: https://docs.docker.com/registry/
|
||||
# documentation: https://distribution.github.io/distribution/
|
||||
# slogan: The Docker Registry lets you distribute Docker images.
|
||||
# category: devtools
|
||||
# tags: registry,images,docker
|
||||
|
|
@ -7,20 +7,35 @@
|
|||
|
||||
services:
|
||||
registry:
|
||||
image: registry:2
|
||||
image: registry:3
|
||||
environment:
|
||||
- SERVICE_URL_REGISTRY_5000
|
||||
- USERNAME=${SERVICE_USER_REGISTRY}
|
||||
- PASSWORD=${SERVICE_PASSWORD_REGISTRY}
|
||||
- REGISTRY_AUTH=htpasswd
|
||||
- REGISTRY_AUTH_HTPASSWD_REALM=Registry
|
||||
- REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm
|
||||
- REGISTRY_AUTH_HTPASSWD_PATH=/auth/registry.password
|
||||
- REGISTRY_STORAGE_FILESYSTEM_ROOTDIRECTORY=/data
|
||||
command: ["/entrypoint.sh"]
|
||||
volumes:
|
||||
- registry-data:/var/lib/registry
|
||||
- type: bind
|
||||
source: ./auth/registry.password
|
||||
target: /auth/registry.password
|
||||
isDirectory: false
|
||||
content: >-
|
||||
testuser:$2y$05$/o2JvmI2bhExXIt6Oqxa7ekYB7v3scj1wFEf6tBslJvJOMoPQL.Gy
|
||||
source: ./etc/entrypoint.sh
|
||||
target: /entrypoint.sh
|
||||
mode: "0755"
|
||||
content: |
|
||||
#!/usr/bin/env sh
|
||||
set -e
|
||||
|
||||
if [ -z "$USERNAME" ] || [ -z "$PASSWORD" ]; then
|
||||
echo "Error: USERNAME and PASSWORD environment variables must be set"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
apk add --no-cache apache2-utils
|
||||
mkdir -p "$(dirname "$REGISTRY_AUTH_HTPASSWD_PATH")"
|
||||
chmod 755 "$(dirname "$REGISTRY_AUTH_HTPASSWD_PATH")"
|
||||
htpasswd -Bbc "$REGISTRY_AUTH_HTPASSWD_PATH" "$USERNAME" "$PASSWORD"
|
||||
registry serve /etc/docker/registry/config.yml
|
||||
- type: bind
|
||||
source: ./config/config.yml
|
||||
target: /etc/docker/registry/config.yml
|
||||
|
|
@ -45,7 +60,13 @@ services:
|
|||
enabled: true
|
||||
interval: 10s
|
||||
threshold: 3
|
||||
- type: bind
|
||||
source: ./data
|
||||
target: /data
|
||||
isDirectory: true
|
||||
healthcheck:
|
||||
test:
|
||||
- CMD
|
||||
- wget
|
||||
- "-q"
|
||||
- "--spider"
|
||||
- "http://localhost:5000/"
|
||||
interval: 5s
|
||||
timeout: 20s
|
||||
retries: 10
|
||||
|
|
|
|||
|
|
@ -773,9 +773,9 @@
|
|||
"minversion": "0.0.0"
|
||||
},
|
||||
"docker-registry": {
|
||||
"documentation": "https://docs.docker.com/registry/?utm_source=coolify.io",
|
||||
"documentation": "https://distribution.github.io/distribution/?utm_source=coolify.io",
|
||||
"slogan": "The Docker Registry lets you distribute Docker images.",
|
||||
"compose": "c2VydmljZXM6CiAgcmVnaXN0cnk6CiAgICBpbWFnZTogJ3JlZ2lzdHJ5OjInCiAgICBlbnZpcm9ubWVudDoKICAgICAgLSBTRVJWSUNFX1VSTF9SRUdJU1RSWV81MDAwCiAgICAgIC0gUkVHSVNUUllfQVVUSD1odHBhc3N3ZAogICAgICAtIFJFR0lTVFJZX0FVVEhfSFRQQVNTV0RfUkVBTE09UmVnaXN0cnkKICAgICAgLSBSRUdJU1RSWV9BVVRIX0hUUEFTU1dEX1BBVEg9L2F1dGgvcmVnaXN0cnkucGFzc3dvcmQKICAgICAgLSBSRUdJU1RSWV9TVE9SQUdFX0ZJTEVTWVNURU1fUk9PVERJUkVDVE9SWT0vZGF0YQogICAgdm9sdW1lczoKICAgICAgLQogICAgICAgIHR5cGU6IGJpbmQKICAgICAgICBzb3VyY2U6IC4vYXV0aC9yZWdpc3RyeS5wYXNzd29yZAogICAgICAgIHRhcmdldDogL2F1dGgvcmVnaXN0cnkucGFzc3dvcmQKICAgICAgICBpc0RpcmVjdG9yeTogZmFsc2UKICAgICAgICBjb250ZW50OiAndGVzdHVzZXI6JDJ5JDA1JC9vMkp2bUkyYmhFeFhJdDZPcXhhN2VrWUI3djNzY2oxd0ZFZjZ0QnNsSnZKT01vUFFMLkd5JwogICAgICAtCiAgICAgICAgdHlwZTogYmluZAogICAgICAgIHNvdXJjZTogLi9jb25maWcvY29uZmlnLnltbAogICAgICAgIHRhcmdldDogL2V0Yy9kb2NrZXIvcmVnaXN0cnkvY29uZmlnLnltbAogICAgICAgIGlzRGlyZWN0b3J5OiBmYWxzZQogICAgICAgIGNvbnRlbnQ6ICJ2ZXJzaW9uOiAwLjFcbmxvZzpcbiAgZmllbGRzOlxuICAgIHNlcnZpY2U6IHJlZ2lzdHJ5XG5zdG9yYWdlOlxuICBjYWNoZTpcbiAgICBibG9iZGVzY3JpcHRvcjogaW5tZW1vcnlcbiAgZmlsZXN5c3RlbTpcbiAgICByb290ZGlyZWN0b3J5OiAvdmFyL2xpYi9yZWdpc3RyeVxuaHR0cDpcbiAgYWRkcjogOjUwMDBcbiAgaGVhZGVyczpcbiAgICBYLUNvbnRlbnQtVHlwZS1PcHRpb25zOiBbbm9zbmlmZl1cbmhlYWx0aDpcbiAgc3RvcmFnZWRyaXZlcjpcbiAgICBlbmFibGVkOiB0cnVlXG4gICAgaW50ZXJ2YWw6IDEwc1xuICAgIHRocmVzaG9sZDogMyIKICAgICAgLQogICAgICAgIHR5cGU6IGJpbmQKICAgICAgICBzb3VyY2U6IC4vZGF0YQogICAgICAgIHRhcmdldDogL2RhdGEKICAgICAgICBpc0RpcmVjdG9yeTogdHJ1ZQo=",
|
||||
"compose": "c2VydmljZXM6CiAgcmVnaXN0cnk6CiAgICBpbWFnZTogJ3JlZ2lzdHJ5OjMnCiAgICBlbnZpcm9ubWVudDoKICAgICAgLSBTRVJWSUNFX1VSTF9SRUdJU1RSWV81MDAwCiAgICAgIC0gJ1VTRVJOQU1FPSR7U0VSVklDRV9VU0VSX1JFR0lTVFJZfScKICAgICAgLSAnUEFTU1dPUkQ9JHtTRVJWSUNFX1BBU1NXT1JEX1JFR0lTVFJZfScKICAgICAgLSBSRUdJU1RSWV9BVVRIPWh0cGFzc3dkCiAgICAgIC0gJ1JFR0lTVFJZX0FVVEhfSFRQQVNTV0RfUkVBTE09UmVnaXN0cnkgUmVhbG0nCiAgICAgIC0gUkVHSVNUUllfQVVUSF9IVFBBU1NXRF9QQVRIPS9hdXRoL3JlZ2lzdHJ5LnBhc3N3b3JkCiAgICBjb21tYW5kOgogICAgICAtIC9lbnRyeXBvaW50LnNoCiAgICB2b2x1bWVzOgogICAgICAtICdyZWdpc3RyeS1kYXRhOi92YXIvbGliL3JlZ2lzdHJ5JwogICAgICAtCiAgICAgICAgdHlwZTogYmluZAogICAgICAgIHNvdXJjZTogLi9ldGMvZW50cnlwb2ludC5zaAogICAgICAgIHRhcmdldDogL2VudHJ5cG9pbnQuc2gKICAgICAgICBtb2RlOiAnMDc1NScKICAgICAgICBjb250ZW50OiAiIyEvdXNyL2Jpbi9lbnYgc2hcbnNldCAtZSBcblxuaWYgWyAteiBcIiRVU0VSTkFNRVwiIF0gfHwgWyAteiBcIiRQQVNTV09SRFwiIF07IHRoZW5cbiAgICBlY2hvIFwiRXJyb3I6IFVTRVJOQU1FIGFuZCBQQVNTV09SRCBlbnZpcm9ubWVudCB2YXJpYWJsZXMgbXVzdCBiZSBzZXRcIlxuICAgIGV4aXQgMVxuZmlcblxuYXBrIGFkZCAtLW5vLWNhY2hlIGFwYWNoZTItdXRpbHNcbm1rZGlyIC1wIFwiJChkaXJuYW1lIFwiJFJFR0lTVFJZX0FVVEhfSFRQQVNTV0RfUEFUSFwiKVwiXG5jaG1vZCA3NTUgXCIkKGRpcm5hbWUgXCIkUkVHSVNUUllfQVVUSF9IVFBBU1NXRF9QQVRIXCIpXCJcbmh0cGFzc3dkIC1CYmMgXCIkUkVHSVNUUllfQVVUSF9IVFBBU1NXRF9QQVRIXCIgXCIkVVNFUk5BTUVcIiBcIiRQQVNTV09SRFwiXG5yZWdpc3RyeSBzZXJ2ZSAvZXRjL2RvY2tlci9yZWdpc3RyeS9jb25maWcueW1sXG4iCiAgICAgIC0KICAgICAgICB0eXBlOiBiaW5kCiAgICAgICAgc291cmNlOiAuL2NvbmZpZy9jb25maWcueW1sCiAgICAgICAgdGFyZ2V0OiAvZXRjL2RvY2tlci9yZWdpc3RyeS9jb25maWcueW1sCiAgICAgICAgaXNEaXJlY3Rvcnk6IGZhbHNlCiAgICAgICAgY29udGVudDogInZlcnNpb246IDAuMVxubG9nOlxuICBmaWVsZHM6XG4gICAgc2VydmljZTogcmVnaXN0cnlcbnN0b3JhZ2U6XG4gIGNhY2hlOlxuICAgIGJsb2JkZXNjcmlwdG9yOiBpbm1lbW9yeVxuICBmaWxlc3lzdGVtOlxuICAgIHJvb3RkaXJlY3Rvcnk6IC92YXIvbGliL3JlZ2lzdHJ5XG5odHRwOlxuICBhZGRyOiA6NTAwMFxuICBoZWFkZXJzOlxuICAgIFgtQ29udGVudC1UeXBlLU9wdGlvbnM6IFtub3NuaWZmXVxuaGVhbHRoOlxuICBzdG9yYWdlZHJpdmVyOlxuICAgIGVuYWJsZWQ6IHRydWVcbiAgICBpbnRlcnZhbDogMTBzXG4gICAgdGhyZXNob2xkOiAzIgogICAgaGVhbHRoY2hlY2s6CiAgICAgIHRlc3Q6CiAgICAgICAgLSBDTUQKICAgICAgICAtIHdnZXQKICAgICAgICAtICctcScKICAgICAgICAtICctLXNwaWRlcicKICAgICAgICAtICdodHRwOi8vbG9jYWxob3N0OjUwMDAvJwogICAgICBpbnRlcnZhbDogNXMKICAgICAgdGltZW91dDogMjBzCiAgICAgIHJldHJpZXM6IDEwCg==",
|
||||
"tags": [
|
||||
"registry",
|
||||
"images",
|
||||
|
|
|
|||
|
|
@ -773,9 +773,9 @@
|
|||
"minversion": "0.0.0"
|
||||
},
|
||||
"docker-registry": {
|
||||
"documentation": "https://docs.docker.com/registry/?utm_source=coolify.io",
|
||||
"documentation": "https://distribution.github.io/distribution/?utm_source=coolify.io",
|
||||
"slogan": "The Docker Registry lets you distribute Docker images.",
|
||||
"compose": "c2VydmljZXM6CiAgcmVnaXN0cnk6CiAgICBpbWFnZTogJ3JlZ2lzdHJ5OjInCiAgICBlbnZpcm9ubWVudDoKICAgICAgLSBTRVJWSUNFX0ZRRE5fUkVHSVNUUllfNTAwMAogICAgICAtIFJFR0lTVFJZX0FVVEg9aHRwYXNzd2QKICAgICAgLSBSRUdJU1RSWV9BVVRIX0hUUEFTU1dEX1JFQUxNPVJlZ2lzdHJ5CiAgICAgIC0gUkVHSVNUUllfQVVUSF9IVFBBU1NXRF9QQVRIPS9hdXRoL3JlZ2lzdHJ5LnBhc3N3b3JkCiAgICAgIC0gUkVHSVNUUllfU1RPUkFHRV9GSUxFU1lTVEVNX1JPT1RESVJFQ1RPUlk9L2RhdGEKICAgIHZvbHVtZXM6CiAgICAgIC0KICAgICAgICB0eXBlOiBiaW5kCiAgICAgICAgc291cmNlOiAuL2F1dGgvcmVnaXN0cnkucGFzc3dvcmQKICAgICAgICB0YXJnZXQ6IC9hdXRoL3JlZ2lzdHJ5LnBhc3N3b3JkCiAgICAgICAgaXNEaXJlY3Rvcnk6IGZhbHNlCiAgICAgICAgY29udGVudDogJ3Rlc3R1c2VyOiQyeSQwNSQvbzJKdm1JMmJoRXhYSXQ2T3F4YTdla1lCN3Yzc2NqMXdGRWY2dEJzbEp2Sk9Nb1BRTC5HeScKICAgICAgLQogICAgICAgIHR5cGU6IGJpbmQKICAgICAgICBzb3VyY2U6IC4vY29uZmlnL2NvbmZpZy55bWwKICAgICAgICB0YXJnZXQ6IC9ldGMvZG9ja2VyL3JlZ2lzdHJ5L2NvbmZpZy55bWwKICAgICAgICBpc0RpcmVjdG9yeTogZmFsc2UKICAgICAgICBjb250ZW50OiAidmVyc2lvbjogMC4xXG5sb2c6XG4gIGZpZWxkczpcbiAgICBzZXJ2aWNlOiByZWdpc3RyeVxuc3RvcmFnZTpcbiAgY2FjaGU6XG4gICAgYmxvYmRlc2NyaXB0b3I6IGlubWVtb3J5XG4gIGZpbGVzeXN0ZW06XG4gICAgcm9vdGRpcmVjdG9yeTogL3Zhci9saWIvcmVnaXN0cnlcbmh0dHA6XG4gIGFkZHI6IDo1MDAwXG4gIGhlYWRlcnM6XG4gICAgWC1Db250ZW50LVR5cGUtT3B0aW9uczogW25vc25pZmZdXG5oZWFsdGg6XG4gIHN0b3JhZ2Vkcml2ZXI6XG4gICAgZW5hYmxlZDogdHJ1ZVxuICAgIGludGVydmFsOiAxMHNcbiAgICB0aHJlc2hvbGQ6IDMiCiAgICAgIC0KICAgICAgICB0eXBlOiBiaW5kCiAgICAgICAgc291cmNlOiAuL2RhdGEKICAgICAgICB0YXJnZXQ6IC9kYXRhCiAgICAgICAgaXNEaXJlY3Rvcnk6IHRydWUK",
|
||||
"compose": "c2VydmljZXM6CiAgcmVnaXN0cnk6CiAgICBpbWFnZTogJ3JlZ2lzdHJ5OjMnCiAgICBlbnZpcm9ubWVudDoKICAgICAgLSBTRVJWSUNFX0ZRRE5fUkVHSVNUUllfNTAwMAogICAgICAtICdVU0VSTkFNRT0ke1NFUlZJQ0VfVVNFUl9SRUdJU1RSWX0nCiAgICAgIC0gJ1BBU1NXT1JEPSR7U0VSVklDRV9QQVNTV09SRF9SRUdJU1RSWX0nCiAgICAgIC0gUkVHSVNUUllfQVVUSD1odHBhc3N3ZAogICAgICAtICdSRUdJU1RSWV9BVVRIX0hUUEFTU1dEX1JFQUxNPVJlZ2lzdHJ5IFJlYWxtJwogICAgICAtIFJFR0lTVFJZX0FVVEhfSFRQQVNTV0RfUEFUSD0vYXV0aC9yZWdpc3RyeS5wYXNzd29yZAogICAgY29tbWFuZDoKICAgICAgLSAvZW50cnlwb2ludC5zaAogICAgdm9sdW1lczoKICAgICAgLSAncmVnaXN0cnktZGF0YTovdmFyL2xpYi9yZWdpc3RyeScKICAgICAgLQogICAgICAgIHR5cGU6IGJpbmQKICAgICAgICBzb3VyY2U6IC4vZXRjL2VudHJ5cG9pbnQuc2gKICAgICAgICB0YXJnZXQ6IC9lbnRyeXBvaW50LnNoCiAgICAgICAgbW9kZTogJzA3NTUnCiAgICAgICAgY29udGVudDogIiMhL3Vzci9iaW4vZW52IHNoXG5zZXQgLWUgXG5cbmlmIFsgLXogXCIkVVNFUk5BTUVcIiBdIHx8IFsgLXogXCIkUEFTU1dPUkRcIiBdOyB0aGVuXG4gICAgZWNobyBcIkVycm9yOiBVU0VSTkFNRSBhbmQgUEFTU1dPUkQgZW52aXJvbm1lbnQgdmFyaWFibGVzIG11c3QgYmUgc2V0XCJcbiAgICBleGl0IDFcbmZpXG5cbmFwayBhZGQgLS1uby1jYWNoZSBhcGFjaGUyLXV0aWxzXG5ta2RpciAtcCBcIiQoZGlybmFtZSBcIiRSRUdJU1RSWV9BVVRIX0hUUEFTU1dEX1BBVEhcIilcIlxuY2htb2QgNzU1IFwiJChkaXJuYW1lIFwiJFJFR0lTVFJZX0FVVEhfSFRQQVNTV0RfUEFUSFwiKVwiXG5odHBhc3N3ZCAtQmJjIFwiJFJFR0lTVFJZX0FVVEhfSFRQQVNTV0RfUEFUSFwiIFwiJFVTRVJOQU1FXCIgXCIkUEFTU1dPUkRcIlxucmVnaXN0cnkgc2VydmUgL2V0Yy9kb2NrZXIvcmVnaXN0cnkvY29uZmlnLnltbFxuIgogICAgICAtCiAgICAgICAgdHlwZTogYmluZAogICAgICAgIHNvdXJjZTogLi9jb25maWcvY29uZmlnLnltbAogICAgICAgIHRhcmdldDogL2V0Yy9kb2NrZXIvcmVnaXN0cnkvY29uZmlnLnltbAogICAgICAgIGlzRGlyZWN0b3J5OiBmYWxzZQogICAgICAgIGNvbnRlbnQ6ICJ2ZXJzaW9uOiAwLjFcbmxvZzpcbiAgZmllbGRzOlxuICAgIHNlcnZpY2U6IHJlZ2lzdHJ5XG5zdG9yYWdlOlxuICBjYWNoZTpcbiAgICBibG9iZGVzY3JpcHRvcjogaW5tZW1vcnlcbiAgZmlsZXN5c3RlbTpcbiAgICByb290ZGlyZWN0b3J5OiAvdmFyL2xpYi9yZWdpc3RyeVxuaHR0cDpcbiAgYWRkcjogOjUwMDBcbiAgaGVhZGVyczpcbiAgICBYLUNvbnRlbnQtVHlwZS1PcHRpb25zOiBbbm9zbmlmZl1cbmhlYWx0aDpcbiAgc3RvcmFnZWRyaXZlcjpcbiAgICBlbmFibGVkOiB0cnVlXG4gICAgaW50ZXJ2YWw6IDEwc1xuICAgIHRocmVzaG9sZDogMyIKICAgIGhlYWx0aGNoZWNrOgogICAgICB0ZXN0OgogICAgICAgIC0gQ01ECiAgICAgICAgLSB3Z2V0CiAgICAgICAgLSAnLXEnCiAgICAgICAgLSAnLS1zcGlkZXInCiAgICAgICAgLSAnaHR0cDovL2xvY2FsaG9zdDo1MDAwLycKICAgICAgaW50ZXJ2YWw6IDVzCiAgICAgIHRpbWVvdXQ6IDIwcwogICAgICByZXRyaWVzOiAxMAo=",
|
||||
"tags": [
|
||||
"registry",
|
||||
"images",
|
||||
|
|
|
|||
Loading…
Reference in a new issue