diff --git a/prdoc/pr_6278.prdoc b/prdoc/pr_6278.prdoc
new file mode 100644
index 0000000000000000000000000000000000000000..d841129aa0630d0b4c280fad5b8b7b30e969f1d7
--- /dev/null
+++ b/prdoc/pr_6278.prdoc
@@ -0,0 +1,14 @@
+title: '[pallet-revive] rpc server add docker file'
+doc:
+- audience: Runtime Dev
+  description: |-
+    Add a docker for pallet-revive eth-rpc
+
+     Tested with
+    ```
+    sudo docker build . -t eth-rpc -f substrate/frame/revive/rpc/Dockerfile
+    sudo docker run --network="host" -e RUST_LOG="info,eth-rpc=debug" eth-rpc
+    ```
+crates:
+- name: pallet-revive-eth-rpc
+  bump: minor
diff --git a/substrate/frame/revive/rpc/.dockerignore b/substrate/frame/revive/rpc/.dockerignore
new file mode 100644
index 0000000000000000000000000000000000000000..c58599e3fb72be03556abb220f8421f51e8d49df
--- /dev/null
+++ b/substrate/frame/revive/rpc/.dockerignore
@@ -0,0 +1,7 @@
+doc
+**target*
+.idea/
+Dockerfile
+.dockerignore
+.local
+.env*
diff --git a/substrate/frame/revive/rpc/Dockerfile b/substrate/frame/revive/rpc/Dockerfile
new file mode 100644
index 0000000000000000000000000000000000000000..3ad476651d838c4e31e5d09cf773439e2812ab9c
--- /dev/null
+++ b/substrate/frame/revive/rpc/Dockerfile
@@ -0,0 +1,23 @@
+FROM rust AS builder
+
+RUN apt-get update && \
+		DEBIAN_FRONTEND=noninteractive apt-get install -y \
+		protobuf-compiler
+
+WORKDIR /polkadot
+COPY . /polkadot
+RUN cargo build --locked --profile production -p pallet-revive-eth-rpc --bin eth-rpc
+
+FROM docker.io/parity/base-bin:latest
+COPY --from=builder /polkadot/target/production/eth-rpc /usr/local/bin
+
+USER root
+RUN useradd -m -u 1001 -U -s /bin/sh -d /polkadot polkadot && \
+# unclutter and minimize the attack surface
+	rm -rf /usr/bin /usr/sbin && \
+# check if executable works in this container
+	/usr/local/bin/eth-rpc --help
+
+USER polkadot
+EXPOSE 8545
+ENTRYPOINT ["/usr/local/bin/eth-rpc"]