Merge pull request #396 from Dokploy/389-is-the-traefik-env-non-persistent

fix(traefik): make env be persistent between restarts
This commit is contained in:
Mauricio Siu 2024-08-30 00:07:42 -06:00 committed by GitHub
commit b9d6fdafac
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 18 additions and 4 deletions

View File

@ -132,7 +132,7 @@ TRAEFIK_CERTIFICATESRESOLVERS_LETSENCRYPT_HTTP_CHALLENGE_DNS_PROVIDER=cloudflare
<DialogFooter>
<Button
isLoading={isLoading}
disabled={canEdit}
disabled={canEdit || isLoading}
form="hook-form-update-server-traefik-config"
type="submit"
>

View File

@ -1,6 +1,6 @@
import { chmodSync, existsSync, mkdirSync, writeFileSync } from "node:fs";
import path from "node:path";
import type { CreateServiceOptions } from "dockerode";
import type { ContainerTaskSpec, CreateServiceOptions } from "dockerode";
import { dump } from "js-yaml";
import { DYNAMIC_TRAEFIK_PATH, MAIN_TRAEFIK_PATH, docker } from "../constants";
import { pullImage } from "../utils/docker/utils";
@ -18,7 +18,7 @@ interface TraefikOptions {
export const initializeTraefik = async ({
enableDashboard = false,
env = [],
env,
}: TraefikOptions = {}) => {
const imageName = "traefik:v2.5";
const containerName = "dokploy-traefik";
@ -85,9 +85,23 @@ export const initializeTraefik = async ({
const service = docker.getService(containerName);
const inspect = await service.inspect();
const existingEnv = inspect.Spec.TaskTemplate.ContainerSpec.Env || [];
const updatedEnv = !env ? existingEnv : env;
const updatedSettings = {
...settings,
TaskTemplate: {
...settings.TaskTemplate,
ContainerSpec: {
...(settings?.TaskTemplate as ContainerTaskSpec).ContainerSpec,
Env: updatedEnv,
},
},
};
await service.update({
version: Number.parseInt(inspect.Version.Index),
...settings,
...updatedSettings,
});
console.log("Traefik Started ✅");