Skip to content

Commit 7f730c2

Browse files
committed
Handle Docker labels more carefully - may be null in some (edge?) cases
1 parent 3b5f337 commit 7f730c2

File tree

3 files changed

+6
-6
lines changed

3 files changed

+6
-6
lines changed

src/interceptors/docker/docker-commands.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ export function isImageAvailable(docker: Docker, name: string) {
5151
}
5252

5353
export function isInterceptedContainer(container: Docker.ContainerInspectInfo, port: string | number) {
54-
return container.Config.Labels[DOCKER_CONTAINER_LABEL] === port.toString();
54+
return container.Config.Labels?.[DOCKER_CONTAINER_LABEL] === port.toString();
5555
}
5656

5757
const envArrayToObject = (envArray: string[] | null | undefined) =>

src/interceptors/docker/docker-data-injection.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ export function ensureDockerInjectionVolumeExists(certContent: string) {
102102
const existingVolume = await docker.getVolume(DOCKER_DATA_VOLUME_NAME).inspect()
103103
.catch<false>(() => false);
104104
const isCertOutdated = existingVolume &&
105-
existingVolume.Labels[DOCKER_VOLUME_CERT_LABEL] !== certContent;
105+
existingVolume.Labels?.[DOCKER_VOLUME_CERT_LABEL] !== certContent;
106106

107107
if (existingVolume && !isCertOutdated) return; // We're all good!
108108

@@ -214,7 +214,7 @@ async function cleanupDataInjectionTools(docker: Docker) {
214214
});
215215
await Promise.all(
216216
blankContainers
217-
.filter(c => c.Labels[DOCKER_BLANK_TAG] !== undefined) // Be extra careful
217+
.filter(c => c.Labels?.[DOCKER_BLANK_TAG] !== undefined) // Be extra careful
218218
.map(c => docker.getContainer(c.Id).remove({ force: true }))
219219
);
220220

@@ -224,7 +224,7 @@ async function cleanupDataInjectionTools(docker: Docker) {
224224

225225
await Promise.all(
226226
blankImages
227-
.filter(i => i.Labels[DOCKER_BLANK_TAG] !== undefined) // Be extra careful
227+
.filter(i => i.Labels?.[DOCKER_BLANK_TAG] !== undefined) // Be extra careful
228228
.map(i => docker.getImage(i.Id).remove({ force: true }))
229229
);
230230
}

src/interceptors/docker/docker-interceptor.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ export class DockerContainerInterceptor implements Interceptor {
5555
id: containerData.Id,
5656
names: containerData.Names,
5757
command: containerData.Command,
58-
labels: containerData.Labels,
58+
labels: containerData.Labels ?? {},
5959
state: containerData.State,
6060
status: containerData.Status,
6161
image: containerData.Image,
@@ -83,7 +83,7 @@ export class DockerContainerInterceptor implements Interceptor {
8383
if (!await this.isActivable()) return false;
8484

8585
return Object.values((await this.getContainers())).some((target) => {
86-
target.Labels[DOCKER_CONTAINER_LABEL] === proxyPort.toString()
86+
target.Labels?.[DOCKER_CONTAINER_LABEL] === proxyPort.toString()
8787
});
8888
}
8989

0 commit comments

Comments
 (0)