From e98d78b444f92e8775578dfbb98802c7d7822eb2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vili=20Sinerv=C3=A4?= Date: Fri, 17 Mar 2023 12:43:43 +0200 Subject: [PATCH] Part3 --- Part1/Dockerfile | 8 -------- Part3/Exercise01/submission.txt | 1 + Part3/Exercise02/link.txt | 1 + Part3/Exercise03/builder.sh | 5 +++++ Part3/Exercise04/Dockerfile | 5 +++++ Part3/Exercise04/builder.sh | 6 ++++++ Part3/Exercise05/Dockerfile_back | 9 +++++++++ Part3/Exercise05/Dockerfile_front | 11 +++++++++++ Part3/Exercise06/sizes.txt | 9 +++++++++ Part3/Exercise07/sizes.txt | 7 +++++++ Part3/Exercise08/Dockerfile | 15 +++++++++++++++ Part3/Exercise08/sizes.txt | 5 +++++ Part3/Exercise09/Dockerfile | 12 ++++++++++++ Part3/Exercise09/sizes.txt | 5 +++++ Part3/Exercise10/Dockerfile | 16 ++++++++++++++++ Part3/Exercise10/sizes.txt | 2 ++ 16 files changed, 109 insertions(+), 8 deletions(-) delete mode 100644 Part1/Dockerfile create mode 100644 Part3/Exercise01/submission.txt create mode 100644 Part3/Exercise02/link.txt create mode 100755 Part3/Exercise03/builder.sh create mode 100644 Part3/Exercise04/Dockerfile create mode 100755 Part3/Exercise04/builder.sh create mode 100644 Part3/Exercise05/Dockerfile_back create mode 100644 Part3/Exercise05/Dockerfile_front create mode 100644 Part3/Exercise06/sizes.txt create mode 100644 Part3/Exercise07/sizes.txt create mode 100644 Part3/Exercise08/Dockerfile create mode 100644 Part3/Exercise08/sizes.txt create mode 100644 Part3/Exercise09/Dockerfile create mode 100644 Part3/Exercise09/sizes.txt create mode 100644 Part3/Exercise10/Dockerfile create mode 100644 Part3/Exercise10/sizes.txt diff --git a/Part1/Dockerfile b/Part1/Dockerfile deleted file mode 100644 index d93ecab..0000000 --- a/Part1/Dockerfile +++ /dev/null @@ -1,8 +0,0 @@ -FROM node:16.19 -EXPOSE 8080 -WORKDIR /usr/src/app -COPY package*.json ./ -COPY . . -RUN npm install && npm run build -RUN npm install -g serve -CMD ["serve", "-s", "-l", "8080", "build"] diff --git a/Part3/Exercise01/submission.txt b/Part3/Exercise01/submission.txt new file mode 100644 index 0000000..3e245cd --- /dev/null +++ b/Part3/Exercise01/submission.txt @@ -0,0 +1 @@ +https://github.com/ArcticCoder/github-actions-exercise diff --git a/Part3/Exercise02/link.txt b/Part3/Exercise02/link.txt new file mode 100644 index 0000000..d5afdd0 --- /dev/null +++ b/Part3/Exercise02/link.txt @@ -0,0 +1 @@ +https://github.com/ArcticCoder/docker-cloud-deploy-exercise diff --git a/Part3/Exercise03/builder.sh b/Part3/Exercise03/builder.sh new file mode 100755 index 0000000..4089743 --- /dev/null +++ b/Part3/Exercise03/builder.sh @@ -0,0 +1,5 @@ +#!/bin/sh +git clone https://github.com/$1.git ./repo +cd ./repo +docker build . -t $2 +docker push $2 diff --git a/Part3/Exercise04/Dockerfile b/Part3/Exercise04/Dockerfile new file mode 100644 index 0000000..6f2ea13 --- /dev/null +++ b/Part3/Exercise04/Dockerfile @@ -0,0 +1,5 @@ +FROM docker:23.0.1-cli +WORKDIR /usr/src/app +COPY ./builder.sh ./builder.sh +RUN apk add git +ENTRYPOINT ["/usr/src/app/builder.sh"] diff --git a/Part3/Exercise04/builder.sh b/Part3/Exercise04/builder.sh new file mode 100755 index 0000000..7401fd1 --- /dev/null +++ b/Part3/Exercise04/builder.sh @@ -0,0 +1,6 @@ +#!/bin/sh +git clone https://github.com/$1.git ./repo +cd ./repo +docker build . -t $2 +docker login -u $DOCKER_USER -p $DOCKER_PWD +docker push $2 diff --git a/Part3/Exercise05/Dockerfile_back b/Part3/Exercise05/Dockerfile_back new file mode 100644 index 0000000..58f00d5 --- /dev/null +++ b/Part3/Exercise05/Dockerfile_back @@ -0,0 +1,9 @@ +FROM golang:1.16 +EXPOSE 8080 +WORKDIR /usr/src/app +COPY . . +ENV REQUEST_ORIGIN=http://devops:5000 +RUN go build +RUN useradd -m appuser +USER appuser +CMD ["./server"] diff --git a/Part3/Exercise05/Dockerfile_front b/Part3/Exercise05/Dockerfile_front new file mode 100644 index 0000000..527925b --- /dev/null +++ b/Part3/Exercise05/Dockerfile_front @@ -0,0 +1,11 @@ +FROM node:16.19 +EXPOSE 5000 +WORKDIR /usr/src/app +COPY package*.json ./ +COPY . . +ENV REACT_APP_BACKEND_URL=http://devops:8080 +RUN npm install && npm run build +RUN npm install -g serve +RUN useradd -m appuser +USER appuser +CMD ["serve", "-s", "-l", "5000", "build"] diff --git a/Part3/Exercise06/sizes.txt b/Part3/Exercise06/sizes.txt new file mode 100644 index 0000000..0bb6d14 --- /dev/null +++ b/Part3/Exercise06/sizes.txt @@ -0,0 +1,9 @@ +Before: +Front - 1.26GB +Back - 1.07GB + +After: +Front - 1.26GB +Back - 1.07GB + +No visible difference at this scale. diff --git a/Part3/Exercise07/sizes.txt b/Part3/Exercise07/sizes.txt new file mode 100644 index 0000000..1e012a5 --- /dev/null +++ b/Part3/Exercise07/sizes.txt @@ -0,0 +1,7 @@ +Before: +Front - 1.26GB +Back - 1.07GB + +After: +Front - 463MB +Back - 447MB diff --git a/Part3/Exercise08/Dockerfile b/Part3/Exercise08/Dockerfile new file mode 100644 index 0000000..e3c1f7c --- /dev/null +++ b/Part3/Exercise08/Dockerfile @@ -0,0 +1,15 @@ +FROM node:16.19-alpine3.16 as build-stage +WORKDIR /usr/src/app +COPY package*.json ./ +COPY . . +ENV REACT_APP_BACKEND_URL=http://devops:8080 +RUN npm install && npm run build + +FROM node:16.19-alpine3.16 +EXPOSE 5000 +WORKDIR /usr/src/app +COPY --from=build-stage /usr/src/app/build /usr/src/app/build +RUN npm install -g serve && \ + adduser -D appuser +USER appuser +CMD ["serve", "-s", "-l", "5000", "build"] diff --git a/Part3/Exercise08/sizes.txt b/Part3/Exercise08/sizes.txt new file mode 100644 index 0000000..fa2c3c0 --- /dev/null +++ b/Part3/Exercise08/sizes.txt @@ -0,0 +1,5 @@ +Before: +Front - 463MB + +After: +Front - 127MB diff --git a/Part3/Exercise09/Dockerfile b/Part3/Exercise09/Dockerfile new file mode 100644 index 0000000..51589a3 --- /dev/null +++ b/Part3/Exercise09/Dockerfile @@ -0,0 +1,12 @@ +FROM golang:1.16.15-alpine3.15 as build-stage +WORKDIR /usr/src/app +COPY . . +RUN adduser -D appuser && CGO_ENABLED=0 go build + +FROM scratch +EXPOSE 8080 +ENV REQUEST_ORIGIN=http://devops:5000 +COPY --from=build-stage /usr/src/app/server / +COPY --from=build-stage /etc/passwd /etc/passwd +USER appuser +CMD ["/server"] diff --git a/Part3/Exercise09/sizes.txt b/Part3/Exercise09/sizes.txt new file mode 100644 index 0000000..8d67041 --- /dev/null +++ b/Part3/Exercise09/sizes.txt @@ -0,0 +1,5 @@ +Before: +Back - 447MB + +After: +Back - 18MB diff --git a/Part3/Exercise10/Dockerfile b/Part3/Exercise10/Dockerfile new file mode 100644 index 0000000..0d132c2 --- /dev/null +++ b/Part3/Exercise10/Dockerfile @@ -0,0 +1,16 @@ +# Using the -slim images instead of alpine, because the alpine images threw error: +# library initialization failed - unable to allocate file descriptor table - out of memory +# and I didn't want to submit something that required modifying Docker settings +FROM openjdk:8-jdk-slim as build +WORKDIR /usr/src/app +COPY pom.xml ./ +COPY . . +RUN ./mvnw package + +FROM openjdk:8-jre-slim +EXPOSE 8080 +WORKDIR /usr/src/app +COPY --from=build /usr/src/app/target/docker-example-1.1.3.jar . +RUN useradd -m appuser +USER appuser +CMD ["java", "-jar", "./docker-example-1.1.3.jar"] diff --git a/Part3/Exercise10/sizes.txt b/Part3/Exercise10/sizes.txt new file mode 100644 index 0000000..de4bfce --- /dev/null +++ b/Part3/Exercise10/sizes.txt @@ -0,0 +1,2 @@ +Before: 435MB +After: 213MB