Skip to content

Commit c926e58

Browse files
committed
simplify dockerfile
1 parent d54b4dc commit c926e58

File tree

5 files changed

+52
-53
lines changed

5 files changed

+52
-53
lines changed

.github/workflows/docker_beacon-chain.yml

+2-1
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,8 @@ jobs:
4343
uses: docker/build-push-action@v2
4444
with:
4545
context: .
46-
file: ./build/dockerfiles/beacon-chain_file.Dockerfile
46+
file: ./build/dockerfiles/Dockerfile
47+
target: beacon-chain
4748
cache-from: type=gha
4849
cache-to: type=gha,mode=max
4950
platforms: linux/amd64,linux/arm64

.github/workflows/docker_validator.yml

+2-1
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,8 @@ jobs:
4343
uses: docker/build-push-action@v2
4444
with:
4545
context: .
46-
file: ./build/dockerfiles/validator_file.Dockerfile
46+
file: ./build/dockerfiles/Dockerfile
47+
target: validator
4748
cache-from: type=gha
4849
cache-to: type=gha,mode=max
4950
platforms: linux/amd64,linux/arm64

build/dockerfiles/Dockerfile

+48
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
# Build Geth in a stock Go builder container
2+
FROM --platform=${BUILDPLATFORM} golang:1.21 as builder
3+
4+
RUN apt-get update && apt-get install -y \
5+
gcc \
6+
g++ \
7+
libstdc++6 \
8+
libc-dev \
9+
musl-tools
10+
11+
# Get dependencies - will also be cached if we won't change go.mod/go.sum
12+
COPY go.mod /prysm/
13+
COPY go.sum /prysm/
14+
RUN cd /prysm && go mod download
15+
16+
ADD . /prysm
17+
18+
FROM builder AS build-beacon-chain
19+
ARG TARGETOS
20+
ARG TARGETARCH
21+
RUN GOOS=${TARGETOS} GOARCH=${TARGETARCH} \
22+
cd /prysm/cmd/beacon-chain && CGO_ENABLED=1 go build -v -o /usr/local/bin/beacon-chain
23+
24+
FROM builder AS build-validator
25+
ARG TARGETOS
26+
ARG TARGETARCH
27+
RUN GOOS=${TARGETOS} GOARCH=${TARGETARCH} \
28+
cd /prysm/cmd/validator && CGO_ENABLED=1 go build -v -o /usr/local/bin/validator
29+
30+
FROM builder AS build-prysmctl
31+
ARG TARGETOS
32+
ARG TARGETARCH
33+
RUN GOOS=${TARGETOS} GOARCH=${TARGETARCH} \
34+
cd /prysm/cmd/prysmctl && CGO_ENABLED=1 go build -v -o /usr/local/bin/prysmctl
35+
36+
# Pull Geth into a second stage deploy container
37+
FROM debian:latest AS beacon-chain
38+
COPY --from=build-beacon-chain /usr/local/bin/beacon-chain /usr/local/bin/
39+
EXPOSE 4000 3500 8080 6060 9090
40+
ENTRYPOINT ["beacon-chain"]
41+
42+
FROM debian:latest AS validator
43+
COPY --from=build-validator /usr/local/bin/validator /usr/local/bin/
44+
ENTRYPOINT ["validator"]
45+
46+
FROM debian:latest AS prysmctl
47+
COPY --from=build-prysmctl /usr/local/bin/prysmctl /usr/local/bin/
48+
ENTRYPOINT ["prysmctl"]

build/dockerfiles/beacon-chain_file.Dockerfile

-26
This file was deleted.

build/dockerfiles/validator_file.Dockerfile

-25
This file was deleted.

0 commit comments

Comments
 (0)