mirror of
https://github.com/renovatebot/github-action.git
synced 2025-12-16 17:02:36 +00:00
feat: add docker-socket-host-path input (#862)
Co-authored-by: Michael Kriese <michael.kriese@visualon.de>
This commit is contained in:
parent
669f02b0b3
commit
c0afe86658
4 changed files with 27 additions and 1 deletions
|
|
@ -13,6 +13,7 @@ GitHub Action to run Renovate self-hosted.
|
||||||
- [`configurationFile`](#configurationfile)
|
- [`configurationFile`](#configurationfile)
|
||||||
- [`docker-cmd-file`](#docker-cmd-file)
|
- [`docker-cmd-file`](#docker-cmd-file)
|
||||||
- [`docker-network`](#docker-network)
|
- [`docker-network`](#docker-network)
|
||||||
|
- [`docker-socket-host-path`](#docker-socket-host-path)
|
||||||
- [`docker-user`](#docker-user)
|
- [`docker-user`](#docker-user)
|
||||||
- [`docker-volumes`](#docker-volumes)
|
- [`docker-volumes`](#docker-volumes)
|
||||||
- [`env-regex`](#env-regex)
|
- [`env-regex`](#env-regex)
|
||||||
|
|
@ -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),
|
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.
|
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`
|
### `docker-user`
|
||||||
|
|
||||||
Specify a user (or user-id) to run docker command.
|
Specify a user (or user-id) to run docker command.
|
||||||
|
|
|
||||||
|
|
@ -36,6 +36,13 @@ inputs:
|
||||||
can use Docker. Also add the user inside the renovate container to the
|
can use Docker. Also add the user inside the renovate container to the
|
||||||
docker group for socket permissions.
|
docker group for socket permissions.
|
||||||
required: false
|
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:
|
docker-cmd-file:
|
||||||
description: |
|
description: |
|
||||||
Override docker command. Default command is `renovate`
|
Override docker command. Default command is `renovate`
|
||||||
|
|
|
||||||
|
|
@ -73,6 +73,10 @@ class Input {
|
||||||
return core.getInput('mount-docker-socket') === 'true';
|
return core.getInput('mount-docker-socket') === 'true';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
dockerSocketHostPath(): string {
|
||||||
|
return core.getInput('docker-socket-host-path') || '/var/run/docker.sock';
|
||||||
|
}
|
||||||
|
|
||||||
getDockerCmdFile(): string | null {
|
getDockerCmdFile(): string | null {
|
||||||
const cmdFile = core.getInput('docker-cmd-file');
|
const cmdFile = core.getInput('docker-cmd-file');
|
||||||
return !!cmdFile && cmdFile !== '' ? path.resolve(cmdFile) : null;
|
return !!cmdFile && cmdFile !== '' ? path.resolve(cmdFile) : null;
|
||||||
|
|
|
||||||
|
|
@ -33,8 +33,16 @@ class Renovate {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.input.mountDockerSocket()) {
|
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(
|
dockerArguments.push(
|
||||||
'--volume /var/run/docker.sock:/var/run/docker.sock',
|
`--volume ${sockPath}:/var/run/docker.sock`,
|
||||||
`--group-add ${await this.getDockerGroupId()}`,
|
`--group-add ${await this.getDockerGroupId()}`,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue