Skip to content

Commit

Permalink
feat: add docker-socket-host-path input (#862)
Browse files Browse the repository at this point in the history
Co-authored-by: Michael Kriese <michael.kriese@visualon.de>
  • Loading branch information
justfalter and viceice authored Sep 30, 2024
1 parent 669f02b commit c0afe86
Show file tree
Hide file tree
Showing 4 changed files with 27 additions and 1 deletion.
7 changes: 7 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ GitHub Action to run Renovate self-hosted.
- [`configurationFile`](#configurationfile)
- [`docker-cmd-file`](#docker-cmd-file)
- [`docker-network`](#docker-network)
- [`docker-socket-host-path`](#docker-socket-host-path)
- [`docker-user`](#docker-user)
- [`docker-volumes`](#docker-volumes)
- [`env-regex`](#env-regex)
Expand Down Expand Up @@ -113,6 +114,12 @@ Specify a network to run container in.
You can use `${{ job.container.network }}` to run renovate container [in the same network as other containers for this job](https://docs.github.com/en/actions/learn-github-actions/contexts#job-context),
or set it to `host` to run in the same network as github runner, or specify any custom network.

### `docker-socket-host-path`

Allows the overriding of the host path for the Docker socket that is mounted into the container.
Useful on systems where the host Docker socket is located somewhere other than `/var/run/docker.sock` (the default).
Only applicable when `mount-docker-socket` is true.

### `docker-user`

Specify a user (or user-id) to run docker command.
Expand Down
7 changes: 7 additions & 0 deletions action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,13 @@ inputs:
can use Docker. Also add the user inside the renovate container to the
docker group for socket permissions.
required: false
docker-socket-host-path:
description: |
Allows the overriding of the host path for the Docker socket that is mounted into the container.
Useful on systems where the host Docker socket is located somewhere other than '/var/run/docker.sock' (the default).
Only applicable when 'mount-docker-socket' is true.
required: false
default: /var/run/docker.sock
docker-cmd-file:
description: |
Override docker command. Default command is `renovate`
Expand Down
4 changes: 4 additions & 0 deletions src/input.ts
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,10 @@ class Input {
return core.getInput('mount-docker-socket') === 'true';
}

dockerSocketHostPath(): string {
return core.getInput('docker-socket-host-path') || '/var/run/docker.sock';
}

getDockerCmdFile(): string | null {
const cmdFile = core.getInput('docker-cmd-file');
return !!cmdFile && cmdFile !== '' ? path.resolve(cmdFile) : null;
Expand Down
10 changes: 9 additions & 1 deletion src/renovate.ts
Original file line number Diff line number Diff line change
Expand Up @@ -33,8 +33,16 @@ class Renovate {
}

if (this.input.mountDockerSocket()) {
const sockPath = this.input.dockerSocketHostPath();
const stat = await fs.stat(sockPath);
if (!stat.isSocket()) {
throw new Error(
`docker socket host path '${sockPath}' MUST exist and be a socket`,
);
}

dockerArguments.push(
'--volume /var/run/docker.sock:/var/run/docker.sock',
`--volume ${sockPath}:/var/run/docker.sock`,
`--group-add ${await this.getDockerGroupId()}`,
);
}
Expand Down

0 comments on commit c0afe86

Please sign in to comment.