add-host input
				
					
				
			Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
This commit is contained in:
		
							parent
							
								
									d8b0ca6f0e
								
							
						
					
					
						commit
						eebf87aed1
					
				
							
								
								
									
										24
									
								
								.github/workflows/ci.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										24
									
								
								.github/workflows/ci.yml
									
									
									
									
										vendored
									
									
								
							| @ -416,6 +416,30 @@ jobs: | |||||||
|         if: always() |         if: always() | ||||||
|         uses: crazy-max/ghaction-dump-context@v1 |         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: |   multi: | ||||||
|     runs-on: ubuntu-latest |     runs-on: ubuntu-latest | ||||||
|     strategy: |     strategy: | ||||||
|  | |||||||
| @ -199,6 +199,7 @@ Following inputs can be used as `step.with` keys | |||||||
| 
 | 
 | ||||||
| | Name                | Type     | Description                        | | | 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`) | | | `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) | | | `builder`           | String   | Builder instance (see [setup-buildx](https://github.com/docker/setup-buildx-action) action) | | ||||||
| | `build-args`        | List     | List of build-time variables | | | `build-args`        | List     | List of build-time variables | | ||||||
|  | |||||||
| @ -469,6 +469,7 @@ ccc`], | |||||||
|       new Map<string, string>([ |       new Map<string, string>([ | ||||||
|         ['context', '.'], |         ['context', '.'], | ||||||
|         ['file', './test/Dockerfile'], |         ['file', './test/Dockerfile'], | ||||||
|  |         ['add-host', 'docker:10.180.0.1'], | ||||||
|         ['cgroup-parent', 'foo'], |         ['cgroup-parent', 'foo'], | ||||||
|         ['shm-size', '2g'], |         ['shm-size', '2g'], | ||||||
|         ['ulimit', `nofile=1024:1024
 |         ['ulimit', `nofile=1024:1024
 | ||||||
| @ -481,6 +482,7 @@ nproc=3`], | |||||||
|       [ |       [ | ||||||
|         'buildx', |         'buildx', | ||||||
|         'build', |         'build', | ||||||
|  |         '--add-host', 'docker:10.180.0.1', | ||||||
|         '--cgroup-parent', 'foo', |         '--cgroup-parent', 'foo', | ||||||
|         '--file', './test/Dockerfile', |         '--file', './test/Dockerfile', | ||||||
|         '--iidfile', '/tmp/.docker-build-push-jest/iidfile', |         '--iidfile', '/tmp/.docker-build-push-jest/iidfile', | ||||||
|  | |||||||
| @ -7,6 +7,9 @@ branding: | |||||||
|   color: 'blue' |   color: 'blue' | ||||||
| 
 | 
 | ||||||
| inputs: | inputs: | ||||||
|  |   add-host: | ||||||
|  |     description: "Add a custom host-to-IP mapping (e.g., docker:10.180.0.1)" | ||||||
|  |     required: false | ||||||
|   allow: |   allow: | ||||||
|     description: "List of extra privileged entitlement (e.g., network.host,security.insecure)" |     description: "List of extra privileged entitlement (e.g., network.host,security.insecure)" | ||||||
|     required: false |     required: false | ||||||
|  | |||||||
							
								
								
									
										4
									
								
								dist/index.js
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								dist/index.js
									
									
									
										generated
									
									
										vendored
									
									
								
							| @ -270,6 +270,7 @@ exports.tmpNameSync = tmpNameSync; | |||||||
| function getInputs(defaultContext) { | function getInputs(defaultContext) { | ||||||
|     return __awaiter(this, void 0, void 0, function* () { |     return __awaiter(this, void 0, void 0, function* () { | ||||||
|         return { |         return { | ||||||
|  |             addHost: yield getInputList('add-host'), | ||||||
|             allow: yield getInputList('allow'), |             allow: yield getInputList('allow'), | ||||||
|             buildArgs: yield getInputList('build-args', true), |             buildArgs: yield getInputList('build-args', true), | ||||||
|             builder: core.getInput('builder'), |             builder: core.getInput('builder'), | ||||||
| @ -311,6 +312,9 @@ exports.getArgs = getArgs; | |||||||
| function getBuildArgs(inputs, defaultContext, buildxVersion) { | function getBuildArgs(inputs, defaultContext, buildxVersion) { | ||||||
|     return __awaiter(this, void 0, void 0, function* () { |     return __awaiter(this, void 0, void 0, function* () { | ||||||
|         let args = ['build']; |         let args = ['build']; | ||||||
|  |         if (inputs.addHost.length > 0) { | ||||||
|  |             args.push('--add-host', inputs.addHost.join(',')); | ||||||
|  |         } | ||||||
|         if (inputs.allow.length > 0) { |         if (inputs.allow.length > 0) { | ||||||
|             args.push('--allow', inputs.allow.join(',')); |             args.push('--allow', inputs.allow.join(',')); | ||||||
|         } |         } | ||||||
|  | |||||||
| @ -14,6 +14,7 @@ import * as handlebars from 'handlebars'; | |||||||
| let _defaultContext, _tmpDir: string; | let _defaultContext, _tmpDir: string; | ||||||
| 
 | 
 | ||||||
| export interface Inputs { | export interface Inputs { | ||||||
|  |   addHost: string[]; | ||||||
|   allow: string[]; |   allow: string[]; | ||||||
|   buildArgs: string[]; |   buildArgs: string[]; | ||||||
|   builder: string; |   builder: string; | ||||||
| @ -67,6 +68,7 @@ export function tmpNameSync(options?: tmp.TmpNameOptions): string { | |||||||
| 
 | 
 | ||||||
| export async function getInputs(defaultContext: string): Promise<Inputs> { | export async function getInputs(defaultContext: string): Promise<Inputs> { | ||||||
|   return { |   return { | ||||||
|  |     addHost: await getInputList('add-host'), | ||||||
|     allow: await getInputList('allow'), |     allow: await getInputList('allow'), | ||||||
|     buildArgs: await getInputList('build-args', true), |     buildArgs: await getInputList('build-args', true), | ||||||
|     builder: core.getInput('builder'), |     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>> { | async function getBuildArgs(inputs: Inputs, defaultContext: string, buildxVersion: string): Promise<Array<string>> { | ||||||
|   let args: Array<string> = ['build']; |   let args: Array<string> = ['build']; | ||||||
|  |   if (inputs.addHost.length > 0) { | ||||||
|  |     args.push('--add-host', inputs.addHost.join(',')); | ||||||
|  |   } | ||||||
|   if (inputs.allow.length > 0) { |   if (inputs.allow.length > 0) { | ||||||
|     args.push('--allow', inputs.allow.join(',')); |     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…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user