fix: Improvement on image pulls

This commit is contained in:
Andras Bacsai 2022-02-24 10:11:48 +01:00
parent 7b4c194b97
commit d6225cbde3
2 changed files with 35 additions and 31 deletions

View File

@ -4,35 +4,39 @@ import { prisma } from '$lib/database';
import { defaultProxyImageHttp, defaultProxyImageTcp } from '$lib/haproxy'; import { defaultProxyImageHttp, defaultProxyImageTcp } from '$lib/haproxy';
export default async function () { export default async function () {
if (!dev) { const destinationDockers = await prisma.destinationDocker.findMany();
const destinationDockers = await prisma.destinationDocker.findMany(); for (const destinationDocker of destinationDockers) {
for (const destinationDocker of destinationDockers) { const host = getEngine(destinationDocker.engine);
const host = getEngine(destinationDocker.engine); // Tagging images with labels
// Tagging images with labels try {
try { const images = [
const images = [ `coollabsio/${defaultProxyImageTcp}`,
`coollabsio/${defaultProxyImageTcp}`, `coollabsio/${defaultProxyImageHttp}`,
`coollabsio/${defaultProxyImageHttp}`, 'certbot/certbot:latest',
'certbot/certbot:latest', 'node:16.14.0-alpine',
'node:16.14.0-alpine', 'alpine:latest',
'alpine:latest', 'nginx:stable-alpine',
'nginx:stable-alpine', 'node:lts',
'node:lts', 'php:apache',
'php:apache', 'rust:latest'
'rust:latest' ];
]; for (const image of images) {
for (const image of images) { try {
await asyncExecShell(`DOCKER_HOST=${host} docker image inspect ${image}`);
} catch (error) {
await asyncExecShell( await asyncExecShell(
`DOCKER_HOST=${host} docker pull ${image} && echo "FROM ${image}" | docker build --label coolify.image="true" -t "${image}" -` `DOCKER_HOST=${host} docker pull ${image} && echo "FROM ${image}" | docker build --label coolify.image="true" -t "${image}" -`
); );
} }
} catch (error) {}
try {
await asyncExecShell(`DOCKER_HOST=${host} docker container prune -f`);
} catch (error) {
console.log(error);
} }
// Cleanup images that are not managed by coolify } catch (error) {}
try {
await asyncExecShell(`DOCKER_HOST=${host} docker container prune -f`);
} catch (error) {
console.log(error);
}
if (!dev) {
//Cleanup images that are not managed by coolify
try { try {
await asyncExecShell( await asyncExecShell(
`DOCKER_HOST=${host} docker image prune --filter 'label!=coolify.image=true' -a -f` `DOCKER_HOST=${host} docker image prune --filter 'label!=coolify.image=true' -a -f`
@ -40,12 +44,12 @@ export default async function () {
} catch (error) { } catch (error) {
console.log(error); console.log(error);
} }
// Cleanup dangling images }
try { // Cleanup dangling images
await asyncExecShell(`DOCKER_HOST=${host} docker image prune -f`); try {
} catch (error) { await asyncExecShell(`DOCKER_HOST=${host} docker image prune -f`);
console.log(error); } catch (error) {
} console.log(error);
} }
} }
} }

View File

@ -87,7 +87,7 @@ const cron = async () => {
await queue.proxy.add('proxy', {}, { repeat: { every: 10000 } }); await queue.proxy.add('proxy', {}, { repeat: { every: 10000 } });
// await queue.ssl.add('ssl', {}, { repeat: { every: 10000 } }); // await queue.ssl.add('ssl', {}, { repeat: { every: 10000 } });
if (!dev) await queue.cleanup.add('cleanup', {}, { repeat: { every: 600000 } }); await queue.cleanup.add('cleanup', {}, { repeat: { every: 600000 } });
await queue.sslRenew.add('sslRenew', {}, { repeat: { every: 1800000 } }); await queue.sslRenew.add('sslRenew', {}, { repeat: { every: 1800000 } });
const events = { const events = {