diff --git a/package.json b/package.json index ee94091..99655a2 100644 --- a/package.json +++ b/package.json @@ -30,7 +30,6 @@ }, "devDependencies": { "@types/dockerode": "^3.2.1", - "@types/dotenv": "^8.2.0", "@types/express": "^4.17.9", "tsc-watch": "^4.2.9", "typescript": "^4.1.2" diff --git a/src/docker.ts b/src/docker.ts index 135654c..b5b1468 100644 --- a/src/docker.ts +++ b/src/docker.ts @@ -50,7 +50,7 @@ export class DockerManager { for (const container of containers) { const labels: DockerCiLabels = container.Labels; if (labels["docker-ci.enable"] === "true") - response[container.Id] = labels["docker-ci.name"] || (await this.getContainer(container.Id).inspect()).Name; + response[container.Id] = labels["docker-ci.name"] || (await this.getContainer(container.Id).inspect()).Name.replace("/", "") } return response; } @@ -85,13 +85,20 @@ export class DockerManager { * @param containerId */ public async recreateContainer(containerId: string) { - const container = this.getContainer(containerId); + let container: Docker.Container = this.getContainer(containerId); const infos = await container.inspect(); this._logger.log("Stopping container"); await container.stop(); this._logger.log("Removing container"); await container.remove(); this._logger.log("Recreating container"); - (await this._docker.createContainer({ ...infos.Config, name: infos.Name })).start(); + container = await this._docker.createContainer({ + ...infos.Config, + name: infos.Name, + NetworkingConfig: { + EndpointsConfig: infos.NetworkSettings.Networks + } + }); + container.start(); } } \ No newline at end of file diff --git a/src/index.ts b/src/index.ts index c3f7ee8..9990955 100644 --- a/src/index.ts +++ b/src/index.ts @@ -49,7 +49,7 @@ class App { try { const containerInfos = await this._dockerManager.getContainer(res.Actor.ID).inspect(); const labels: DockerCiLabels = containerInfos.Config.Labels; - const routeId = labels["docker-ci.name"] || containerName; + const routeId = labels["docker-ci.name"] || containerName.replace("/", ""); if (labels["docker-ci.enable"] === "true") { this._logger.log("Docker-ci enabled, adding container to webhook conf"); this._addContainerConf(routeId, containerInfos.Id); diff --git a/test/docker-compose.yml b/test/docker-compose.yml index d5dab1b..46a585c 100644 --- a/test/docker-compose.yml +++ b/test/docker-compose.yml @@ -2,6 +2,13 @@ version: "3" services: app: image: "httpd" + container_name: httpd + networks: + - "web" labels: - "docker-ci.enable=true" - - "docker-ci.name=hello-world" \ No newline at end of file + - "docker-ci.name=hello-world" + +networks: + web: + external: true \ No newline at end of file