mirror of
https://github.com/docker/build-push-action.git
synced 2024-08-26 14:37:17 -04:00
add-host
input
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
This commit is contained in:
parent
d8b0ca6f0e
commit
eebf87aed1
7 changed files with 41 additions and 0 deletions
24
.github/workflows/ci.yml
vendored
24
.github/workflows/ci.yml
vendored
|
@ -416,6 +416,30 @@ jobs:
|
|||
if: always()
|
||||
uses: crazy-max/ghaction-dump-context@v1
|
||||
|
||||
addhost:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
-
|
||||
name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
-
|
||||
name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v1
|
||||
-
|
||||
name: Build
|
||||
uses: ./
|
||||
with:
|
||||
context: ./test
|
||||
file: ./test/addhost.Dockerfile
|
||||
tags: name/app:latest
|
||||
add-host: |
|
||||
docker:10.180.0.1
|
||||
foo:10.0.0.1
|
||||
-
|
||||
name: Dump context
|
||||
if: always()
|
||||
uses: crazy-max/ghaction-dump-context@v1
|
||||
|
||||
multi:
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
|
|
|
@ -199,6 +199,7 @@ Following inputs can be used as `step.with` keys
|
|||
|
||||
| Name | Type | Description |
|
||||
|---------------------|----------|------------------------------------|
|
||||
| `add-host` | List/CSV | Add a [custom host-to-IP mapping](https://docs.docker.com/engine/reference/commandline/build/#add-entries-to-container-hosts-file---add-host) (e.g., `docker:10.180.0.1`) |
|
||||
| `allow` | List/CSV | List of [extra privileged entitlement](https://github.com/docker/buildx/blob/master/docs/reference/buildx_build.md#allow) (e.g., `network.host,security.insecure`) |
|
||||
| `builder` | String | Builder instance (see [setup-buildx](https://github.com/docker/setup-buildx-action) action) |
|
||||
| `build-args` | List | List of build-time variables |
|
||||
|
|
|
@ -469,6 +469,7 @@ ccc`],
|
|||
new Map<string, string>([
|
||||
['context', '.'],
|
||||
['file', './test/Dockerfile'],
|
||||
['add-host', 'docker:10.180.0.1'],
|
||||
['cgroup-parent', 'foo'],
|
||||
['shm-size', '2g'],
|
||||
['ulimit', `nofile=1024:1024
|
||||
|
@ -481,6 +482,7 @@ nproc=3`],
|
|||
[
|
||||
'buildx',
|
||||
'build',
|
||||
'--add-host', 'docker:10.180.0.1',
|
||||
'--cgroup-parent', 'foo',
|
||||
'--file', './test/Dockerfile',
|
||||
'--iidfile', '/tmp/.docker-build-push-jest/iidfile',
|
||||
|
|
|
@ -7,6 +7,9 @@ branding:
|
|||
color: 'blue'
|
||||
|
||||
inputs:
|
||||
add-host:
|
||||
description: "Add a custom host-to-IP mapping (e.g., docker:10.180.0.1)"
|
||||
required: false
|
||||
allow:
|
||||
description: "List of extra privileged entitlement (e.g., network.host,security.insecure)"
|
||||
required: false
|
||||
|
|
4
dist/index.js
generated
vendored
4
dist/index.js
generated
vendored
|
@ -270,6 +270,7 @@ exports.tmpNameSync = tmpNameSync;
|
|||
function getInputs(defaultContext) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
return {
|
||||
addHost: yield getInputList('add-host'),
|
||||
allow: yield getInputList('allow'),
|
||||
buildArgs: yield getInputList('build-args', true),
|
||||
builder: core.getInput('builder'),
|
||||
|
@ -311,6 +312,9 @@ exports.getArgs = getArgs;
|
|||
function getBuildArgs(inputs, defaultContext, buildxVersion) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
let args = ['build'];
|
||||
if (inputs.addHost.length > 0) {
|
||||
args.push('--add-host', inputs.addHost.join(','));
|
||||
}
|
||||
if (inputs.allow.length > 0) {
|
||||
args.push('--allow', inputs.allow.join(','));
|
||||
}
|
||||
|
|
|
@ -14,6 +14,7 @@ import * as handlebars from 'handlebars';
|
|||
let _defaultContext, _tmpDir: string;
|
||||
|
||||
export interface Inputs {
|
||||
addHost: string[];
|
||||
allow: string[];
|
||||
buildArgs: string[];
|
||||
builder: string;
|
||||
|
@ -67,6 +68,7 @@ export function tmpNameSync(options?: tmp.TmpNameOptions): string {
|
|||
|
||||
export async function getInputs(defaultContext: string): Promise<Inputs> {
|
||||
return {
|
||||
addHost: await getInputList('add-host'),
|
||||
allow: await getInputList('allow'),
|
||||
buildArgs: await getInputList('build-args', true),
|
||||
builder: core.getInput('builder'),
|
||||
|
@ -104,6 +106,9 @@ export async function getArgs(inputs: Inputs, defaultContext: string, buildxVers
|
|||
|
||||
async function getBuildArgs(inputs: Inputs, defaultContext: string, buildxVersion: string): Promise<Array<string>> {
|
||||
let args: Array<string> = ['build'];
|
||||
if (inputs.addHost.length > 0) {
|
||||
args.push('--add-host', inputs.addHost.join(','));
|
||||
}
|
||||
if (inputs.allow.length > 0) {
|
||||
args.push('--allow', inputs.allow.join(','));
|
||||
}
|
||||
|
|
2
test/addhost.Dockerfile
Normal file
2
test/addhost.Dockerfile
Normal file
|
@ -0,0 +1,2 @@
|
|||
FROM busybox
|
||||
RUN cat /etc/hosts
|
Loading…
Reference in a new issue