Merge pull request #124 from vvoland/rootless

Add rootless support
This commit is contained in:
CrazyMax 2024-11-14 15:18:28 +01:00 committed by GitHub
commit 332d315257
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
8 changed files with 60 additions and 34 deletions

View File

@ -55,10 +55,6 @@ jobs:
uses: ./
with:
version: ${{ env.DOCKER_VERSION }}
-
name: Dump context
if: always()
uses: crazy-max/ghaction-dump-context@v2
channel:
runs-on: ${{ matrix.os }}
@ -85,10 +81,6 @@ jobs:
with:
version: v24.0.0-rc.4
channel: test
-
name: Dump context
if: always()
uses: crazy-max/ghaction-dump-context@v2
daemon-config:
runs-on: ${{ matrix.os }}
@ -120,10 +112,6 @@ jobs:
"containerd-snapshotter": true
}
}
-
name: Dump context
if: always()
uses: crazy-max/ghaction-dump-context@v2
context:
runs-on: ${{ matrix.os }}
@ -154,10 +142,6 @@ jobs:
name: Check context
run: |
docker context inspect foo
-
name: Dump context
if: always()
uses: crazy-max/ghaction-dump-context@v2
lima-start-args:
#runs-on: macos-14 # no virt: https://github.com/docker/actions-toolkit/issues/317
@ -220,10 +204,6 @@ jobs:
name: Inspect
run: |
docker buildx imagetools inspect localhost:5000/name/app:latest --format '{{json .}}'
-
name: Dump context
if: always()
uses: crazy-max/ghaction-dump-context@v2
build-macos:
runs-on: ${{ matrix.os }}
@ -270,10 +250,6 @@ jobs:
name: Inspect
run: |
docker buildx imagetools inspect localhost:5000/name/app:latest --format '{{json .}}'
-
name: Dump context
if: always()
uses: crazy-max/ghaction-dump-context@v2
build-windows:
runs-on: windows-latest
@ -295,10 +271,6 @@ jobs:
name: Inspect
run: |
docker image inspect test
-
name: Dump context
if: always()
uses: crazy-max/ghaction-dump-context@v2
set-host:
runs-on: ubuntu-latest
@ -315,7 +287,19 @@ jobs:
name: List contexts
run: |
docker context ls
rootless:
runs-on: ubuntu-latest
steps:
-
name: Dump context
if: always()
uses: crazy-max/ghaction-dump-context@v2
name: Checkout
uses: actions/checkout@v4
-
name: Set up Docker
uses: ./
with:
rootless: true
-
name: List contexts
run: |
docker context ls

View File

@ -135,6 +135,7 @@ The following inputs can be used as `step.with` keys
| `daemon-config` | String | | [Docker daemon JSON configuration](https://docs.docker.com/engine/reference/commandline/dockerd/#daemon-configuration-file) |
| `context` | String | `setup-docker-action` | Docker context name. |
| `set-host` | Bool | `false` | Set `DOCKER_HOST` environment variable to docker socket path. |
| `rootless` | Bool | `false` | Start daemon in rootless mode |
### outputs

View File

@ -19,6 +19,7 @@ describe('getInputs', () => {
new Map<string, string>([
['version', 'v24.0.8'],
['set-host', 'false'],
['rootless', 'false'],
]),
{
source: {
@ -28,6 +29,7 @@ describe('getInputs', () => {
},
context: '',
daemonConfig: '',
rootless: false,
setHost: false
} as context.Inputs
],
@ -39,6 +41,7 @@ describe('getInputs', () => {
['context', 'foo'],
['daemon-config', `{"debug":true,"features":{"containerd-snapshotter":true}}`],
['set-host', 'false'],
['rootless', 'false'],
]),
{
source: {
@ -48,6 +51,7 @@ describe('getInputs', () => {
},
context: 'foo',
daemonConfig: `{"debug":true,"features":{"containerd-snapshotter":true}}`,
rootless: false,
setHost: false
} as context.Inputs
],
@ -55,6 +59,7 @@ describe('getInputs', () => {
2,
new Map<string, string>([
['set-host', 'true'],
['rootless', 'false'],
]),
{
source: {
@ -64,6 +69,7 @@ describe('getInputs', () => {
},
context: '',
daemonConfig: '',
rootless: false,
setHost: true
} as context.Inputs
],
@ -74,6 +80,7 @@ describe('getInputs', () => {
['context', 'foo'],
['daemon-config', `{"debug":true,"features":{"containerd-snapshotter":true}}`],
['set-host', 'false'],
['rootless', 'false'],
]),
{
source: {
@ -82,6 +89,7 @@ describe('getInputs', () => {
},
context: 'foo',
daemonConfig: `{"debug":true,"features":{"containerd-snapshotter":true}}`,
rootless: false,
setHost: false
} as context.Inputs
],
@ -90,6 +98,7 @@ describe('getInputs', () => {
new Map<string, string>([
['version', 'type=image'],
['set-host', 'false'],
['rootless', 'false'],
]),
{
source: {
@ -98,6 +107,7 @@ describe('getInputs', () => {
},
context: '',
daemonConfig: '',
rootless: false,
setHost: false
} as context.Inputs
],
@ -106,6 +116,7 @@ describe('getInputs', () => {
new Map<string, string>([
['version', 'type=archive'],
['set-host', 'false'],
['rootless', 'false'],
]),
{
source: {
@ -116,6 +127,7 @@ describe('getInputs', () => {
setHost: false,
context: '',
daemonConfig: '',
rootless: false,
} as context.Inputs
],
[
@ -123,6 +135,7 @@ describe('getInputs', () => {
new Map<string, string>([
['version', 'version=v27.2.0,channel=test'],
['set-host', 'false'],
['rootless', 'false'],
]),
{
source: {
@ -133,6 +146,7 @@ describe('getInputs', () => {
setHost: false,
context: '',
daemonConfig: '',
rootless: false,
} as context.Inputs
],
[
@ -140,6 +154,7 @@ describe('getInputs', () => {
new Map<string, string>([
['version', 'type=image,tag=27.2.1'],
['set-host', 'false'],
['rootless', 'false'],
]),
{
source: {
@ -149,6 +164,25 @@ describe('getInputs', () => {
setHost: false,
context: '',
daemonConfig: '',
rootless: false,
} as context.Inputs
],
[
8,
new Map<string, string>([
['version', 'type=image,tag=27.2.1'],
['set-host', 'false'],
['rootless', 'true']
]),
{
source: {
type: 'image',
tag: '27.2.1',
},
setHost: false,
context: '',
daemonConfig: '',
rootless: true,
} as context.Inputs
],
])(

View File

@ -24,6 +24,10 @@ inputs:
description: 'Set DOCKER_HOST environment variable to docker socket path'
default: 'false'
required: false
rootless:
description: 'Enable Docker rootless mode'
default: 'false'
required: false
outputs:
sock:

2
dist/index.js generated vendored

File diff suppressed because one or more lines are too long

2
dist/index.js.map generated vendored

File diff suppressed because one or more lines are too long

View File

@ -7,6 +7,7 @@ export interface Inputs {
daemonConfig?: string;
context: string;
setHost: boolean;
rootless: boolean;
}
export function getInputs(): Inputs {
@ -21,7 +22,8 @@ export function getInputs(): Inputs {
source: source,
daemonConfig: core.getInput('daemon-config'),
context: core.getInput('context'),
setHost: core.getBooleanInput('set-host')
setHost: core.getBooleanInput('set-host'),
rootless: core.getBooleanInput('rootless')
};
}

View File

@ -22,6 +22,7 @@ actionsToolkit.run(
const install = new Install({
runDir: runDir,
source: input.source,
rootless: input.rootless,
contextName: input.context || 'setup-docker-action',
daemonConfig: input.daemonConfig
});