feat: New update process (#115)

This commit is contained in:
Andras Bacsai 2022-02-11 11:46:47 +01:00 committed by GitHub
parent cf9d32b556
commit e622294b87
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 14 additions and 13 deletions

View File

@ -2,7 +2,7 @@ version: '3.8'
services:
coolify:
image: coollabsio/coolify:${TAG}
image: coollabsio/coolify:${TAG:-latest}
restart: always
container_name: coolify
ports:

View File

@ -16,7 +16,7 @@
"db:generate": "prisma generate",
"db:push": "prisma db push && prisma generate",
"db:seed": "prisma db seed",
"stagrelease": "cross-var docker build -t coollabsio/coolify:$npm_package_version && docker push coollabsio/coolify:$npm_package_version",
"stagrelease": "cross-var docker build -t coollabsio/coolify:$npm_package_version . && docker push coollabsio/coolify:$npm_package_version",
"prerelease": "cross-var docker build -t coollabsio/coolify:$npm_package_version -t coollabsio/coolify:latest .",
"release:coolify": "cross-var yarn prerelease && docker push coollabsio/coolify:$npm_package_version && docker image push coollabsio/coolify:$npm_package_version && docker push coollabsio/coolify:latest",
"release:haproxy": "docker build -f haproxy.Dockerfile -t coollabsio/coolify-haproxy-alpine:1.0.0 -t coollabsio/coolify-haproxy-alpine:latest . && docker image push --all-tags coollabsio/coolify-haproxy-alpine",

View File

@ -8,13 +8,13 @@ export default async function () {
for (const destinationDocker of destinationDockers) {
const host = getEngine(destinationDocker.engine);
try {
await asyncExecShell(`DOCKER_HOST=${host} docker container prune -f`);
// await asyncExecShell(`DOCKER_HOST=${host} docker container prune -f`);
} catch (error) {
//
console.log(error);
}
try {
await asyncExecShell(`DOCKER_HOST=${host} docker image prune -f`);
// await asyncExecShell(`DOCKER_HOST=${host} docker image prune -f`);
} catch (error) {
//
console.log(error);

View File

@ -39,8 +39,7 @@
import { errorNotification } from '$lib/form';
import { asyncSleep } from '$lib/components/common';
import { del, get, post } from '$lib/api';
import { dev } from '$app/env';
import Loading from '$lib/components/Loading.svelte';
import { browser } from '$app/env';
let isUpdateAvailable = false;
let updateStatus = {
@ -51,6 +50,7 @@
let latestVersion = 'latest';
onMount(async () => {
if ($session.uid) {
const overrideVersion = browser && window.localStorage.getItem('latestVersion');
try {
await get(`/login.json`);
} catch ({ error }) {
@ -62,11 +62,11 @@
updateStatus.checking = true;
try {
const data = await get(`/update.json`);
if (data?.isUpdateAvailable) {
latestVersion = data.latestVersion;
await post(`/update.json`, { type: 'pull' });
if (overrideVersion || data?.isUpdateAvailable) {
latestVersion = overrideVersion || data.latestVersion;
isUpdateAvailable = overrideVersion ? true : data?.isUpdateAvailable;
await post(`/update.json`, { type: 'pull', latestVersion });
}
isUpdateAvailable = data?.isUpdateAvailable;
} catch (error) {
} finally {
updateStatus.checking = false;

View File

@ -30,13 +30,13 @@ export const post: RequestHandler = async (event) => {
if (type === 'pull') {
try {
if (!dev) {
await asyncExecShell(`env | grep COOLIFY > .env`);
await asyncExecShell(`docker compose pull`);
await asyncExecShell(`docker pull coollabsio/coolify:${latestVersion}`);
return {
status: 200,
body: {}
};
} else {
await asyncExecShell(`docker pull coollabsio/coolify:${latestVersion}`);
await asyncSleep(2000);
return {
status: 200,
@ -49,8 +49,9 @@ export const post: RequestHandler = async (event) => {
} else if (type === 'update') {
try {
if (!dev) {
await asyncExecShell(`env | grep COOLIFY > .env`);
await asyncExecShell(
`docker run --rm -tid --env-file .env -v /var/run/docker.sock:/var/run/docker.sock -v coolify-db coollabsio/coolify:${latestVersion} /bin/sh -c "env | grep COOLIFY > .env && echo 'TAG=${latestVersion}' >> .env && docker stop -t 0 coolify && docker stop -t 0 coolify-redis && docker compose up -d --force-recreate"`
`docker run --rm -tid --env-file .env -v /var/run/docker.sock:/var/run/docker.sock -v coolify-db coollabsio/coolify:${latestVersion} /bin/sh -c "env | grep COOLIFY > .env && echo 'TAG=${latestVersion}' >> .env && docker stop -t 0 coolify coolify-redis && docker rm coolify coolify-redis && docker compose up -d --force-recreate"`
);
return {
status: 200,