Skip to content

Commit ce04416

Browse files
pawan-59nishant-d
andauthored
chore: Optimised Dockerfile by removing extra layers (#6293)
* optimise dockerfile * build optimise * updated Dockerfile to remove extra layers * updated DockerfileEA to remove extra layers * updated dockerfile to add vendor step --------- Co-authored-by: nishant <[email protected]>
1 parent ded2c48 commit ce04416

File tree

2 files changed

+51
-50
lines changed

2 files changed

+51
-50
lines changed

Dockerfile

Lines changed: 30 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,52 +1,46 @@
11
FROM golang:1.21 AS build-env
22

3-
RUN echo $GOPATH
4-
RUN apt update
5-
RUN apt install git gcc musl-dev make -y
6-
RUN go install github.com/google/wire/cmd/wire@latest
3+
RUN echo $GOPATH && \
4+
apt update && \
5+
apt install git gcc musl-dev make -y && \
6+
go install github.com/google/wire/cmd/wire@latest
7+
78
WORKDIR /go/src/github.com/devtron-labs/devtron
9+
810
ADD . /go/src/github.com/devtron-labs/devtron/
11+
912
ADD ./vendor/github.com/Microsoft/ /go/src/github.com/devtron-labs/devtron/vendor/github.com/microsoft/
10-
RUN GOOS=linux make build-all
13+
14+
RUN GOOS=linux make build
1115

1216
# uncomment this post build arg
1317
FROM ubuntu:22.04@sha256:1b8d8ff4777f36f19bfe73ee4df61e3a0b789caeff29caa019539ec7c9a57f95 as devtron-all
1418

15-
RUN apt update
16-
RUN apt install ca-certificates git curl -y
17-
RUN apt clean autoclean
18-
RUN apt autoremove -y && rm -rf /var/lib/apt/lists/*
19-
COPY --from=build-env /go/src/github.com/devtron-labs/devtron/devtron .
20-
COPY --from=build-env /go/src/github.com/devtron-labs/devtron/auth_model.conf .
21-
#COPY --from=build-env /go/src/github.com/devtron-labs/devtron/vendor/github.com/argoproj/argo-cd/assets/ /go/src/github.com/devtron-labs/devtron/vendor/github.com/argoproj/argo-cd/assets
22-
COPY --from=build-env /go/src/github.com/devtron-labs/devtron/argocd-assets/ /go/src/github.com/devtron-labs/devtron/vendor/github.com/argoproj/argo-cd/assets
23-
COPY --from=build-env /go/src/github.com/devtron-labs/devtron/scripts/devtron-reference-helm-charts scripts/devtron-reference-helm-charts
24-
COPY --from=build-env /go/src/github.com/devtron-labs/devtron/scripts/sql scripts/sql
25-
COPY --from=build-env /go/src/github.com/devtron-labs/devtron/scripts/casbin scripts/casbin
26-
COPY --from=build-env /go/src/github.com/devtron-labs/devtron/scripts/argo-assets/APPLICATION_TEMPLATE.tmpl scripts/argo-assets/APPLICATION_TEMPLATE.tmpl
27-
28-
COPY ./git-ask-pass.sh /git-ask-pass.sh
29-
RUN chmod +x /git-ask-pass.sh
30-
31-
RUN useradd -ms /bin/bash devtron
32-
RUN chown -R devtron:devtron ./devtron
33-
RUN chown -R devtron:devtron ./git-ask-pass.sh
34-
RUN chown -R devtron:devtron ./auth_model.conf
35-
RUN chown -R devtron:devtron ./scripts
19+
RUN apt update && \
20+
apt install ca-certificates git curl -y && \
21+
apt clean autoclean && \
22+
apt autoremove -y && \
23+
rm -rf /var/lib/apt/lists/* && \
24+
useradd -ms /bin/bash devtron
3625

37-
USER devtron
26+
COPY --chown=devtron:devtron --from=build-env /go/src/github.com/devtron-labs/devtron/devtron .
27+
28+
COPY --chown=devtron:devtron --from=build-env /go/src/github.com/devtron-labs/devtron/auth_model.conf .
3829

39-
CMD ["./devtron"]
30+
COPY --chown=devtron:devtron --from=build-env /go/src/github.com/devtron-labs/devtron/argocd-assets/ /go/src/github.com/devtron-labs/devtron/vendor/github.com/argoproj/argo-cd/assets
4031

32+
COPY --chown=devtron:devtron --from=build-env /go/src/github.com/devtron-labs/devtron/scripts/devtron-reference-helm-charts scripts/devtron-reference-helm-charts
4133

42-
#FROM alpine:3.15.0 as devtron-ea
34+
COPY --chown=devtron:devtron --from=build-env /go/src/github.com/devtron-labs/devtron/scripts/sql scripts/sql
4335

44-
#RUN apk add --no-cache ca-certificates
45-
#COPY --from=build-env /go/src/github.com/devtron-labs/devtron/auth_model.conf .
46-
#COPY --from=build-env /go/src/github.com/devtron-labs/devtron/cmd/external-app/devtron-ea .
36+
COPY --chown=devtron:devtron --from=build-env /go/src/github.com/devtron-labs/devtron/scripts/casbin scripts/casbin
4737

48-
#COPY --from=build-env /go/src/github.com/devtron-labs/devtron/vendor/github.com/argoproj/argo-cd/assets/ /go/src/github.com/devtron-labs/devtron/vendor/github.com/argoproj/argo-cd/assets
49-
#COPY --from=build-env /go/src/github.com/devtron-labs/devtron/scripts/devtron-reference-helm-charts scripts/devtron-reference-helm-charts
50-
#COPY --from=build-env /go/src/github.com/devtron-labs/devtron/scripts/argo-assets/APPLICATION_TEMPLATE.JSON scripts/argo-assets/APPLICATION_TEMPLATE.JSON
38+
COPY --chown=devtron:devtron --from=build-env /go/src/github.com/devtron-labs/devtron/scripts/argo-assets/APPLICATION_TEMPLATE.tmpl scripts/argo-assets/APPLICATION_TEMPLATE.tmpl
39+
40+
COPY --chown=devtron:devtron ./git-ask-pass.sh /git-ask-pass.sh
41+
42+
RUN chmod +x /git-ask-pass.sh
43+
44+
USER devtron
5145

52-
#CMD ["./devtron-ea"]
46+
CMD ["./devtron"]

DockerfileEA

Lines changed: 21 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,40 @@
11
FROM golang:1.21 AS build-env
22

3-
RUN echo $GOPATH
4-
RUN apt update
5-
RUN apt install git gcc musl-dev make -y
6-
RUN go install github.com/google/wire/cmd/wire@latest
3+
RUN echo $GOPATH && \
4+
apt update && \
5+
apt install git gcc musl-dev make -y && \
6+
go install github.com/google/wire/cmd/wire@latest
7+
78
WORKDIR /go/src/github.com/devtron-labs/devtron
9+
810
ADD . /go/src/github.com/devtron-labs/devtron/
11+
912
ADD ./vendor/github.com/Microsoft/ /go/src/github.com/devtron-labs/devtron/vendor/github.com/microsoft/
13+
1014
RUN GOOS=linux make build-all
1115

1216
FROM ubuntu:22.04@sha256:1b8d8ff4777f36f19bfe73ee4df61e3a0b789caeff29caa019539ec7c9a57f95 as devtron-ea
1317

14-
RUN apt update
15-
RUN apt install ca-certificates curl -y
16-
RUN apt clean autoclean
17-
RUN apt autoremove -y && rm -rf /var/lib/apt/lists/*
18-
COPY --from=build-env /go/src/github.com/devtron-labs/devtron/auth_model.conf .
19-
COPY --from=build-env /go/src/github.com/devtron-labs/devtron/cmd/external-app/devtron-ea .
18+
RUN apt update && \
19+
apt install ca-certificates curl -y && \
20+
apt clean autoclean && \
21+
apt autoremove -y && rm -rf /var/lib/apt/lists/* && \
22+
useradd -ms /bin/bash devtron
23+
24+
COPY --chown=devtron:devtron --from=build-env /go/src/github.com/devtron-labs/devtron/auth_model.conf .
25+
26+
COPY --chown=devtron:devtron --from=build-env /go/src/github.com/devtron-labs/devtron/cmd/external-app/devtron-ea .
2027

21-
#COPY --from=build-env /go/src/github.com/devtron-labs/devtron/vendor/github.com/argoproj/argo-cd/assets/ /go/src/github.com/devtron-labs/devtron/vendor/github.com/argoproj/argo-cd/assets
2228
COPY --from=build-env /go/src/github.com/devtron-labs/devtron/argocd-assets/ /go/src/github.com/devtron-labs/devtron/vendor/github.com/argoproj/argo-cd/assets
29+
2330
COPY --from=build-env /go/src/github.com/devtron-labs/devtron/scripts/devtron-reference-helm-charts scripts/devtron-reference-helm-charts
31+
2432
COPY --from=build-env /go/src/github.com/devtron-labs/devtron/scripts/sql scripts/sql
33+
2534
COPY --from=build-env /go/src/github.com/devtron-labs/devtron/scripts/casbin scripts/casbin
35+
2636
COPY --from=build-env /go/src/github.com/devtron-labs/devtron/scripts/argo-assets/APPLICATION_TEMPLATE.tmpl scripts/argo-assets/APPLICATION_TEMPLATE.tmpl
2737

28-
RUN useradd -ms /bin/bash devtron
29-
RUN chown -R devtron:devtron ./devtron-ea
30-
RUN chown -R devtron:devtron ./auth_model.conf
3138
RUN chown -R devtron:devtron ./scripts
3239

3340
USER devtron

0 commit comments

Comments
 (0)