Revert "move images to ghcr.io"

This reverts commit 5d090018f9.
This commit is contained in:
Simon L. 2025-03-25 10:43:20 +01:00
parent d5c195aa0c
commit 94d29988da
6 changed files with 27 additions and 54 deletions

View file

@ -29,7 +29,7 @@ jobs:
run: | run: |
docker rm --force nextcloud-aio-{mastercontainer,apache,notify-push,nextcloud,redis,database,domaincheck,whiteboard,imaginary,talk,collabora,borgbackup} || true docker rm --force nextcloud-aio-{mastercontainer,apache,notify-push,nextcloud,redis,database,domaincheck,whiteboard,imaginary,talk,collabora,borgbackup} || true
docker volume rm nextcloud_aio_{mastercontainer,apache,database,database_dump,nextcloud,nextcloud_data,redis,backup_cache,elasticsearch} || true docker volume rm nextcloud_aio_{mastercontainer,apache,database,database_dump,nextcloud,nextcloud_data,redis,backup_cache,elasticsearch} || true
docker pull ghcr.io/nextcloud-releases/all-in-one:develop docker pull nextcloud/all-in-one:develop
docker run \ docker run \
-d \ -d \
--init \ --init \
@ -40,7 +40,7 @@ jobs:
--volume /var/run/docker.sock:/var/run/docker.sock:ro \ --volume /var/run/docker.sock:/var/run/docker.sock:ro \
--env SKIP_DOMAIN_VALIDATION=true \ --env SKIP_DOMAIN_VALIDATION=true \
--env APACHE_PORT=11000 \ --env APACHE_PORT=11000 \
ghcr.io/nextcloud-releases/all-in-one:develop nextcloud/all-in-one:develop
echo Waiting for 10 seconds for the development container to start ... echo Waiting for 10 seconds for the development container to start ...
sleep 10 sleep 10
@ -61,7 +61,7 @@ jobs:
--volume /var/run/docker.sock:/var/run/docker.sock:ro \ --volume /var/run/docker.sock:/var/run/docker.sock:ro \
--env SKIP_DOMAIN_VALIDATION=false \ --env SKIP_DOMAIN_VALIDATION=false \
--env APACHE_PORT=11000 \ --env APACHE_PORT=11000 \
ghcr.io/nextcloud-releases/all-in-one:develop nextcloud/all-in-one:develop
echo Waiting for 10 seconds for the development container to start ... echo Waiting for 10 seconds for the development container to start ...
sleep 10 sleep 10

View file

@ -14,8 +14,7 @@ jobs:
uses: actions/checkout@v4 uses: actions/checkout@v4
- name: update helm chart - name: update helm chart
run: | run: |
GHCR_TOKEN="$(curl https://ghcr.io/token\?scope\="repository:nextcloud-releases/all-in-one:pull" | jq '.token')" DOCKER_TAG="$(curl -L -s 'https://registry.hub.docker.com/v2/repositories/nextcloud/all-in-one/tags?page_size=1024' | jq '."results"[]["name"]' | sed 's|"||g' | grep '^20[0-9_]\+' | grep -v latest | sort -r | head -1)"
DOCKER_TAG="$(curl -H "Authorization: Bearer ${GHCR_TOKEN}" -L -s 'https://ghcr.io/v2/nextcloud-releases/all-in-one/tags/list?page_size=1024' | jq '.tags' | sed 's|"||g' | grep '^20[0-9_]\+' | grep -v latest | sort -r | head -1)"
export DOCKER_TAG export DOCKER_TAG
if [ -n "$DOCKER_TAG" ] && ! grep -q "$DOCKER_TAG" ./nextcloud-aio-helm-chart/templates/nextcloud-aio-nextcloud-deployment.yaml; then if [ -n "$DOCKER_TAG" ] && ! grep -q "$DOCKER_TAG" ./nextcloud-aio-helm-chart/templates/nextcloud-aio-nextcloud-deployment.yaml; then
sudo bash nextcloud-aio-helm-chart/update-helm.sh "$DOCKER_TAG" sudo bash nextcloud-aio-helm-chart/update-helm.sh "$DOCKER_TAG"

View file

@ -283,10 +283,10 @@ if [ "$?" = 6 ]; then
exit 1 exit 1
fi fi
# Check if ghcr.io is reachable # Check if auth.docker.io is reachable
# Solves issues like https://github.com/nextcloud/all-in-one/discussions/5268 # Solves issues like https://github.com/nextcloud/all-in-one/discussions/5268
if ! curl https://ghcr.io 2>&1; then if ! curl https://auth.docker.io/token 2>&1 | grep -q token; then
print_red "Could not reach https://ghcr.io." print_red "Could not reach https://auth.docker.io."
echo "Most likely is something blocking access to it." echo "Most likely is something blocking access to it."
echo "You should be able to fix this by using https://github.com/nextcloud/all-in-one/tree/main/manual-install" echo "You should be able to fix this by using https://github.com/nextcloud/all-in-one/tree/main/manual-install"
exit 1 exit 1

View file

@ -11,7 +11,7 @@ sudo docker run \
--publish 8443:8443 \ --publish 8443:8443 \
--volume nextcloud_aio_mastercontainer:/mnt/docker-aio-config \ --volume nextcloud_aio_mastercontainer:/mnt/docker-aio-config \
--volume /var/run/docker.sock:/var/run/docker.sock:ro \ --volume /var/run/docker.sock:/var/run/docker.sock:ro \
ghcr.io/nextcloud-releases/all-in-one:develop nextcloud/all-in-one:develop
``` ```
And you are done :) And you are done :)
It will now also select the developer channel for all other containers automatically. It will now also select the developer channel for all other containers automatically.

View file

@ -13,7 +13,7 @@
"nextcloud-aio-whiteboard" "nextcloud-aio-whiteboard"
], ],
"display_name": "Apache", "display_name": "Apache",
"image": "ghcr.io/nextcloud-releases/aio-apache", "image": "nextcloud/aio-apache",
"user": "33", "user": "33",
"init": true, "init": true,
"healthcheck": { "healthcheck": {
@ -84,7 +84,7 @@
"container_name": "nextcloud-aio-database", "container_name": "nextcloud-aio-database",
"image_tag": "%AIO_CHANNEL%", "image_tag": "%AIO_CHANNEL%",
"display_name": "Database", "display_name": "Database",
"image": "ghcr.io/nextcloud-releases/aio-postgresql", "image": "nextcloud/aio-postgresql",
"user": "999", "user": "999",
"init": true, "init": true,
"healthcheck": { "healthcheck": {
@ -149,7 +149,7 @@
"nextcloud-aio-docker-socket-proxy" "nextcloud-aio-docker-socket-proxy"
], ],
"display_name": "Nextcloud", "display_name": "Nextcloud",
"image": "ghcr.io/nextcloud-releases/aio-nextcloud", "image": "nextcloud/aio-nextcloud",
"init": true, "init": true,
"healthcheck": { "healthcheck": {
"start_period": "0s", "start_period": "0s",
@ -271,7 +271,7 @@
"container_name": "nextcloud-aio-notify-push", "container_name": "nextcloud-aio-notify-push",
"image_tag": "%AIO_CHANNEL%", "image_tag": "%AIO_CHANNEL%",
"display_name": "Notify Push", "display_name": "Notify Push",
"image": "ghcr.io/nextcloud-releases/aio-notify-push", "image": "nextcloud/aio-notify-push",
"user": "33", "user": "33",
"init": true, "init": true,
"healthcheck": { "healthcheck": {
@ -319,7 +319,7 @@
"container_name": "nextcloud-aio-redis", "container_name": "nextcloud-aio-redis",
"image_tag": "%AIO_CHANNEL%", "image_tag": "%AIO_CHANNEL%",
"display_name": "Redis", "display_name": "Redis",
"image": "ghcr.io/nextcloud-releases/aio-redis", "image": "nextcloud/aio-redis",
"user": "999", "user": "999",
"init": true, "init": true,
"healthcheck": { "healthcheck": {
@ -361,7 +361,7 @@
"image_tag": "%AIO_CHANNEL%", "image_tag": "%AIO_CHANNEL%",
"documentation": "https://github.com/nextcloud/all-in-one/discussions/1358", "documentation": "https://github.com/nextcloud/all-in-one/discussions/1358",
"display_name": "Collabora", "display_name": "Collabora",
"image": "ghcr.io/nextcloud-releases/aio-collabora", "image": "nextcloud/aio-collabora",
"init": true, "init": true,
"healthcheck": { "healthcheck": {
"start_period": "60s", "start_period": "60s",
@ -404,7 +404,7 @@
"image_tag": "%AIO_CHANNEL%", "image_tag": "%AIO_CHANNEL%",
"documentation": "https://github.com/nextcloud/all-in-one/discussions/1358", "documentation": "https://github.com/nextcloud/all-in-one/discussions/1358",
"display_name": "Talk", "display_name": "Talk",
"image": "ghcr.io/nextcloud-releases/aio-talk", "image": "nextcloud/aio-talk",
"user": "1000", "user": "1000",
"init": true, "init": true,
"healthcheck": { "healthcheck": {
@ -466,7 +466,7 @@
"container_name": "nextcloud-aio-talk-recording", "container_name": "nextcloud-aio-talk-recording",
"image_tag": "%AIO_CHANNEL%", "image_tag": "%AIO_CHANNEL%",
"display_name": "Talk Recording", "display_name": "Talk Recording",
"image": "ghcr.io/nextcloud-releases/aio-talk-recording", "image": "nextcloud/aio-talk-recording",
"user": "122", "user": "122",
"init": true, "init": true,
"healthcheck": { "healthcheck": {
@ -518,7 +518,7 @@
{ {
"container_name": "nextcloud-aio-borgbackup", "container_name": "nextcloud-aio-borgbackup",
"image_tag": "%AIO_CHANNEL%", "image_tag": "%AIO_CHANNEL%",
"image": "ghcr.io/nextcloud-releases/aio-borgbackup", "image": "nextcloud/aio-borgbackup",
"init": true, "init": true,
"environment": [ "environment": [
"BORG_REMOTE_REPO=%BORGBACKUP_REMOTE_REPO%", "BORG_REMOTE_REPO=%BORGBACKUP_REMOTE_REPO%",
@ -586,7 +586,7 @@
{ {
"container_name": "nextcloud-aio-watchtower", "container_name": "nextcloud-aio-watchtower",
"image_tag": "%AIO_CHANNEL%", "image_tag": "%AIO_CHANNEL%",
"image": "ghcr.io/nextcloud-releases/aio-watchtower", "image": "nextcloud/aio-watchtower",
"init": true, "init": true,
"environment": [ "environment": [
"CONTAINER_TO_UPDATE=nextcloud-aio-mastercontainer" "CONTAINER_TO_UPDATE=nextcloud-aio-mastercontainer"
@ -606,7 +606,7 @@
{ {
"container_name": "nextcloud-aio-domaincheck", "container_name": "nextcloud-aio-domaincheck",
"image_tag": "%AIO_CHANNEL%", "image_tag": "%AIO_CHANNEL%",
"image": "ghcr.io/nextcloud-releases/aio-domaincheck", "image": "nextcloud/aio-domaincheck",
"init": true, "init": true,
"ports": [ "ports": [
{ {
@ -637,7 +637,7 @@
"container_name": "nextcloud-aio-clamav", "container_name": "nextcloud-aio-clamav",
"image_tag": "%AIO_CHANNEL%", "image_tag": "%AIO_CHANNEL%",
"display_name": "ClamAV", "display_name": "ClamAV",
"image": "ghcr.io/nextcloud-releases/aio-clamav", "image": "nextcloud/aio-clamav",
"user": "100", "user": "100",
"init": false, "init": false,
"healthcheck": { "healthcheck": {
@ -683,7 +683,7 @@
"container_name": "nextcloud-aio-onlyoffice", "container_name": "nextcloud-aio-onlyoffice",
"image_tag": "%AIO_CHANNEL%", "image_tag": "%AIO_CHANNEL%",
"display_name": "OnlyOffice", "display_name": "OnlyOffice",
"image": "ghcr.io/nextcloud-releases/aio-onlyoffice", "image": "nextcloud/aio-onlyoffice",
"init": true, "init": true,
"healthcheck": { "healthcheck": {
"start_period": "60s", "start_period": "60s",
@ -729,7 +729,7 @@
"container_name": "nextcloud-aio-imaginary", "container_name": "nextcloud-aio-imaginary",
"image_tag": "%AIO_CHANNEL%", "image_tag": "%AIO_CHANNEL%",
"display_name": "Imaginary", "display_name": "Imaginary",
"image": "ghcr.io/nextcloud-releases/aio-imaginary", "image": "nextcloud/aio-imaginary",
"user": "65534", "user": "65534",
"init": true, "init": true,
"healthcheck": { "healthcheck": {
@ -771,7 +771,7 @@
"image_tag": "%AIO_CHANNEL%", "image_tag": "%AIO_CHANNEL%",
"documentation": "https://github.com/nextcloud/all-in-one/discussions/1709", "documentation": "https://github.com/nextcloud/all-in-one/discussions/1709",
"display_name": "Fulltextsearch", "display_name": "Fulltextsearch",
"image": "ghcr.io/nextcloud-releases/aio-fulltextsearch", "image": "nextcloud/aio-fulltextsearch",
"init": false, "init": false,
"healthcheck": { "healthcheck": {
"start_period": "60s", "start_period": "60s",
@ -819,7 +819,7 @@
"container_name": "nextcloud-aio-docker-socket-proxy", "container_name": "nextcloud-aio-docker-socket-proxy",
"image_tag": "%AIO_CHANNEL%", "image_tag": "%AIO_CHANNEL%",
"display_name": "Docker Socket Proxy", "display_name": "Docker Socket Proxy",
"image": "ghcr.io/nextcloud-releases/aio-docker-socket-proxy", "image": "nextcloud/aio-docker-socket-proxy",
"init": true, "init": true,
"internal_port": "2375", "internal_port": "2375",
"environment": [ "environment": [
@ -845,7 +845,7 @@
"container_name": "nextcloud-aio-whiteboard", "container_name": "nextcloud-aio-whiteboard",
"image_tag": "%AIO_CHANNEL%", "image_tag": "%AIO_CHANNEL%",
"display_name": "Whiteboard", "display_name": "Whiteboard",
"image": "ghcr.io/nextcloud-releases/aio-whiteboard", "image": "nextcloud/aio-whiteboard",
"user": "65534", "user": "65534",
"init": true, "init": true,
"healthcheck": { "healthcheck": {

View file

@ -742,33 +742,6 @@ readonly class DockerActionManager {
} }
} }
private function GetCurrentImageName(): string {
$cacheKey = 'aio-image-name';
$imageName = apcu_fetch($cacheKey);
if ($imageName !== false && is_string($imageName)) {
return $imageName;
}
$containerName = 'nextcloud-aio-mastercontainer';
$url = $this->BuildApiUrl(sprintf('containers/%s/json', $containerName));
try {
$output = json_decode($this->guzzleClient->get($url)->getBody()->getContents(), true);
$imageNameArray = explode(':', $output['Config']['Image']);
if (count($imageNameArray) === 2) {
$imageName = $imageNameArray[0];
} else {
error_log("No tag was found when getting the current channel. You probably did not follow the documentation correctly. Changing the imageName to the default " . $output['Config']['Image']);
$imageName = $output['Config']['Image'];
}
apcu_add($cacheKey, $imageName);
return $imageName;
} catch (\Exception $e) {
error_log('Could not get current imageName ' . $e->getMessage());
}
return 'nextcloud/all-in-one';
}
public function GetCurrentChannel(): string { public function GetCurrentChannel(): string {
$cacheKey = 'aio-ChannelName'; $cacheKey = 'aio-ChannelName';
$channelName = apcu_fetch($cacheKey); $channelName = apcu_fetch($cacheKey);
@ -780,6 +753,7 @@ readonly class DockerActionManager {
$url = $this->BuildApiUrl(sprintf('containers/%s/json', $containerName)); $url = $this->BuildApiUrl(sprintf('containers/%s/json', $containerName));
try { try {
$output = json_decode($this->guzzleClient->get($url)->getBody()->getContents(), true); $output = json_decode($this->guzzleClient->get($url)->getBody()->getContents(), true);
$containerChecksum = $output['Image'];
$tagArray = explode(':', $output['Config']['Image']); $tagArray = explode(':', $output['Config']['Image']);
if (count($tagArray) === 2) { if (count($tagArray) === 2) {
$tag = $tagArray[1]; $tag = $tagArray[1];
@ -797,7 +771,7 @@ readonly class DockerActionManager {
} }
public function IsMastercontainerUpdateAvailable(): bool { public function IsMastercontainerUpdateAvailable(): bool {
$imageName = $this->GetCurrentImageName(); $imageName = 'nextcloud/all-in-one';
$containerName = 'nextcloud-aio-mastercontainer'; $containerName = 'nextcloud-aio-mastercontainer';
$tag = $this->GetCurrentChannel(); $tag = $this->GetCurrentChannel();