diff --git a/src/docker.js b/src/docker.js index 621711ce3..aa10b70af 100644 --- a/src/docker.js +++ b/src/docker.js @@ -170,8 +170,11 @@ async function downloadImage(manifest) { const parsedManifestRef = parseImageRef(manifest.dockerImage); await promiseRetry({ times: 10, interval: 5000, debug, retry: (pullError) => pullError.reason !== BoxError.FS_ERROR }, async () => { + // custom (non appstore) image if (parsedManifestRef.registry !== null || !parsedManifestRef.fullRepositoryName.startsWith('cloudron/')) return await pullImage(manifest.dockerImage); + // docker hub only uses first 64 bits for ipv6 addressing. this causes many ipv6 rate limit errors + // https://www.docker.com/blog/beta-ipv6-support-on-docker-hub-registry/ . as a hack, we try ipv4 explicity let upstreamRef = null; for (const registry of [ 'registry.docker.com', 'registry.ipv4.docker.com', 'quay.io' ]) { upstreamRef = `${registry}/${manifest.dockerImage}`;