Merge pull request #13 from Dokploy/add-docker-compose

Add docker compose
This commit is contained in:
Mauricio Siu
2024-05-01 02:17:58 -06:00
committed by GitHub
20 changed files with 98 additions and 32 deletions

View File

@@ -1,6 +1,10 @@
import Docker from "dockerode";
import path from "node:path";
export const BASE_PATH = "/etc/dokploy";
export const BASE_PATH =
process.env.NODE_ENV === "production"
? "/etc/dokploy"
: path.join(process.cwd(), ".docker");
export const MAIN_TRAEFIK_PATH = `${BASE_PATH}/traefik`;
export const DYNAMIC_TRAEFIK_PATH = `${BASE_PATH}/traefik/dynamic`;
export const LOGS_PATH = `${BASE_PATH}/logs`;

View File

@@ -10,9 +10,10 @@ const db = drizzle(pg);
const clearDb = async (): Promise<void> => {
try {
const tablesQuery = sql<string>`DROP SCHEMA public CASCADE; CREATE SCHEMA public;`;
const tablesQuery = sql<string>`DROP SCHEMA public CASCADE; CREATE SCHEMA public; DROP schema drizzle CASCADE;`;
const tables = await db.execute(tablesQuery);
console.log(tables);
await pg.end();
} catch (error) {
console.error("Error to clean database", error);
} finally {

View File

@@ -34,31 +34,32 @@ void app.prepare().then(async () => {
handle(req, res);
});
setupDirectories();
createDefaultMiddlewares();
await initializeNetwork();
await initializeSwarm();
createDefaultTraefikConfig();
createDefaultServerTraefikConfig();
await initializeTraefik();
await initializeRedis();
await initializePostgres();
// WEBSOCKET
setupDeploymentLogsWebSocketServer(server);
setupDockerContainerLogsWebSocketServer(server);
setupDockerContainerTerminalWebSocketServer(server);
setupTerminalWebSocketServer(server);
setupDockerStatsMonitoringSocketServer(server);
if (process.env.NODE_ENV === "production") {
// Cron Jobs
setupDirectories();
createDefaultMiddlewares();
await initializeSwarm();
await initializeNetwork();
createDefaultTraefikConfig();
createDefaultServerTraefikConfig();
await initializeTraefik();
await initializeRedis();
await initializePostgres();
initCronJobs();
welcomeServer();
// Timeout to wait for the database to be ready
await new Promise((resolve) => setTimeout(resolve, 7000));
await migration();
}
server.listen(PORT);
console.log("Server Started:", PORT);
deploymentWorker.run();
} catch (e) {
console.error("Main Server Error", e);

View File

@@ -56,7 +56,6 @@ export const initializePostgres = async () => {
console.log("Postgres Started ✅");
} catch (error) {
console.log(error);
await docker.createService(settings);
console.log("Postgres Not Found: Starting ✅");
}

View File

@@ -19,7 +19,6 @@ export const dockerSwarmInitialized = async () => {
return true;
} catch (e) {
console.log(e);
return false;
}
};

View File

@@ -133,7 +133,7 @@ export const createDefaultTraefikConfig = () => {
},
}),
file: {
directory: DYNAMIC_TRAEFIK_PATH,
directory: "/etc/dokploy/traefik/dynamic",
watch: true,
},
},