diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index bb6d5df..dbf5e2e 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -290,6 +290,30 @@ jobs:
         if: always()
         uses: crazy-max/ghaction-dump-context@v1
 
+  network:
+    runs-on: ubuntu-latest
+    steps:
+      -
+        name: Checkout
+        uses: actions/checkout@v2
+      -
+        name: Set up Docker Buildx
+        uses: docker/setup-buildx-action@v1
+      -
+        name: List networks
+        run: docker network ls
+      -
+        name: Build
+        uses: ./
+        with:
+          context: ./test
+          tags: name/app:latest
+          network: host
+      -
+        name: Dump context
+        if: always()
+        uses: crazy-max/ghaction-dump-context@v1
+
   multi:
     runs-on: ubuntu-latest
     strategy:
diff --git a/README.md b/README.md
index 6358d53..dcf15e0 100644
--- a/README.md
+++ b/README.md
@@ -204,6 +204,7 @@ Following inputs can be used as `step.with` keys
 | `file`              | String   | Path to the Dockerfile. (default `{context}/Dockerfile`) |
 | `labels`            | List     | List of metadata for an image |
 | `load`              | Bool     | [Load](https://github.com/docker/buildx/blob/master/docs/reference/buildx_build.md#load) is a shorthand for `--output=type=docker` (default `false`) |
+| `network`           | String   | Set the networking mode for the `RUN` instructions during build |
 | `no-cache`          | Bool     | Do not use cache when building the image (default `false`) |
 | `outputs`           | List     | List of [output destinations](https://github.com/docker/buildx/blob/master/docs/reference/buildx_build.md#output) (format: `type=local,dest=path`) |
 | `platforms`         | List/CSV | List of [target platforms](https://github.com/docker/buildx/blob/master/docs/reference/buildx_build.md#platform) for build |
diff --git a/__tests__/context.test.ts b/__tests__/context.test.ts
index a3e3e0d..56d93d1 100644
--- a/__tests__/context.test.ts
+++ b/__tests__/context.test.ts
@@ -346,6 +346,7 @@ ccc`],
         ['secret-files', `MY_SECRET=${path.join(__dirname, 'fixtures', 'secret.txt').split(path.sep).join(path.posix.sep)}`],
         ['file', './test/Dockerfile'],
         ['builder', 'builder-git-context-2'],
+        ['network', 'host'],
         ['push', 'true']
       ]),
       [
@@ -355,6 +356,7 @@ ccc`],
         '--secret', 'id=MY_SECRET,src=/tmp/.docker-build-push-jest/.tmpname-jest',
         '--file', './test/Dockerfile',
         '--builder', 'builder-git-context-2',
+        '--network', 'host',
         '--push',
         'https://github.com/docker/build-push-action.git#heads/master'
       ]
diff --git a/action.yml b/action.yml
index 77b26aa..49f08fb 100644
--- a/action.yml
+++ b/action.yml
@@ -35,6 +35,9 @@ inputs:
     description: "Load is a shorthand for --output=type=docker"
     required: false
     default: 'false'
+  network:
+    description: "Set the networking mode for the RUN instructions during build"
+    required: false
   no-cache:
     description: "Do not use cache when building the image"
     required: false
diff --git a/dist/index.js b/dist/index.js
index aee4be1..84c909a 100644
--- a/dist/index.js
+++ b/dist/index.js
@@ -13042,6 +13042,7 @@ function getInputs(defaultContext) {
             file: core.getInput('file'),
             labels: yield getInputList('labels', true),
             load: /true/i.test(core.getInput('load')),
+            network: core.getInput('network'),
             noCache: /true/i.test(core.getInput('no-cache')),
             outputs: yield getInputList('outputs', true),
             platforms: yield getInputList('platforms'),
@@ -13144,6 +13145,9 @@ function getCommonArgs(inputs) {
         if (inputs.load) {
             args.push('--load');
         }
+        if (inputs.network) {
+            args.push('--network', inputs.network);
+        }
         if (inputs.push) {
             args.push('--push');
         }
diff --git a/src/context.ts b/src/context.ts
index 922c430..f3cfb5f 100644
--- a/src/context.ts
+++ b/src/context.ts
@@ -22,6 +22,7 @@ export interface Inputs {
   file: string;
   labels: string[];
   load: boolean;
+  network: string;
   noCache: boolean;
   outputs: string[];
   platforms: string[];
@@ -66,6 +67,7 @@ export async function getInputs(defaultContext: string): Promise<Inputs> {
     file: core.getInput('file'),
     labels: await getInputList('labels', true),
     load: /true/i.test(core.getInput('load')),
+    network: core.getInput('network'),
     noCache: /true/i.test(core.getInput('no-cache')),
     outputs: await getInputList('outputs', true),
     platforms: await getInputList('platforms'),
@@ -163,6 +165,9 @@ async function getCommonArgs(inputs: Inputs): Promise<Array<string>> {
   if (inputs.load) {
     args.push('--load');
   }
+  if (inputs.network) {
+    args.push('--network', inputs.network);
+  }
   if (inputs.push) {
     args.push('--push');
   }