Skip to content

Instantly share code, notes, and snippets.

@QuadmanSWE
Created March 30, 2022 21:52
Show Gist options
  • Save QuadmanSWE/5fc4e86413dde044437d0f168e401eb6 to your computer and use it in GitHub Desktop.
Save QuadmanSWE/5fc4e86413dde044437d0f168e401eb6 to your computer and use it in GitHub Desktop.
multi stage docker builds of web apps
FROM mcr.microsoft.com/dotnet/sdk:6.0-alpine3.15@sha256:fe38d256de00db2594c5d3949df4d06a7801ff03bbbdf084d2ce5f0a2e7c747b AS builder
WORKDIR /app
COPY *.csproj .
RUN dotnet restore
COPY . .
RUN dotnet publish -c Release -o out
FROM mcr.microsoft.com/dotnet/aspnet:6.0-alpine3.15@sha256:eaab307e3325a298998647d6f2916b68d5445ffbbd470d053808786427bc6456 as bin
WORKDIR /app
COPY --from=builder /app/out .
ENTRYPOINT ["dotnet", "dotnet-app.dll"]
FROM python:alpine3.15@sha256:bd9f7fd93baf921d34f30f585d41081e8a105875ef7de767910659a5f12472e3
RUN pip install flask
COPY app.py app.py
ENTRYPOINT ["python"]
CMD ["app.py"]
FROM golang:alpine3.15@sha256:e7d1b2dff120cb5037a84e633968cf133b9af7c5f18d10cb150c4f9f7e15849b as build
ENV CGO_ENABLED=0
RUN mkdir /app
COPY . /app
WORKDIR /app
RUN go build -o main .
FROM scratch AS bin
WORKDIR /app
COPY --from=build /app .
EXPOSE 8080
USER 1000
CMD ["/app/main"]
FROM node:16.14.2-alpine3.15@sha256:eb705b1081d837fba1d980fa4dd25bc729661140b1e6a7cc6e499fb54adddb09 AS build
WORKDIR /app
COPY package.json yarn.lock ./
RUN yarn install --pure-lockfile
COPY . .
RUN yarn build
FROM nginx:1.21.6-alpine@sha256:1e3458b8841319dec826a9a63b66f98c0bb260d50454dcdbdfe414eed362a3c4 as bin
WORKDIR /usr/share/nginx/html
RUN rm -rf ./*
COPY --from=build /app/build .
ENTRYPOINT ["nginx", "-g", "daemon off;"]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment