From 49c6d16f89f793c765d88c790ef42a16a9266ab6 Mon Sep 17 00:00:00 2001 From: RyCloudEng Date: Sat, 11 Apr 2026 08:37:53 -0400 Subject: [PATCH 1/9] deleted Dockerfile --- Dockerfile | 17 ----------------- 1 file changed, 17 deletions(-) delete mode 100644 Dockerfile diff --git a/Dockerfile b/Dockerfile deleted file mode 100644 index 2aa90f0..0000000 --- a/Dockerfile +++ /dev/null @@ -1,17 +0,0 @@ -# build environment -FROM node:12.2.0-alpine as build -WORKDIR /app - -ENV PATH /app/node_modules/.bin:$PATH -COPY package.json /app/package.json -RUN npm install --silent -RUN npm config set unsafe-perm true #https://stackoverflow.com/questions/52196518/could-not-get-uid-gid-when-building-node-docker -RUN npm install react-scripts@3.0.1 -g --silent -COPY . /app -RUN npm run build - -# production environment -FROM nginx:1.16.0-alpine -COPY --from=build /app/build /usr/share/nginx/html -EXPOSE 80 -CMD ["nginx", "-g", "daemon off;"] From 1abb90e5225944d881d9ee6830fc3f77f9795918 Mon Sep 17 00:00:00 2001 From: RyCloudEng Date: Sat, 11 Apr 2026 09:19:09 -0400 Subject: [PATCH 2/9] Dockerfile creation --- Dockerfile | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 Dockerfile diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..cdf249a --- /dev/null +++ b/Dockerfile @@ -0,0 +1,25 @@ +FROM node:12.2.0-alpine as ryannode + +WORKDIR /app +ENV PATH /app/node_modules/.bin:$PATH + +COPY package.json . +RUN npm install --silent +RUN npm config set unsafe-perm true +RUN npm install react-scripts@3.0.1 -g --silent + +COPY . . +RUN npm run build + + +FROM nginx:alpine + +COPY --from=ryannode /app/build /usr/share/nginx/html + +EXPOSE 80 + +CMD ["nginx", "-g", "daemon off;"] + + + + From 5c7757b1fb9a52b24fe3b7350d3d381c7cbc5299 Mon Sep 17 00:00:00 2001 From: RyCloudEng Date: Sat, 11 Apr 2026 13:14:42 -0400 Subject: [PATCH 3/9] Add GitHub Actions workflow for multi-stage build --- .github/workflows/main.yml | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 .github/workflows/main.yml diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml new file mode 100644 index 0000000..0fe74ef --- /dev/null +++ b/.github/workflows/main.yml @@ -0,0 +1,35 @@ +name: Multi Stage + +on: + push: + branches: master + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - name: checkout code + uses: actions/checkout@v6 + + - name: build docker image + run: docker build --tag my-image:v1 . + + - name: Push to ECR + id: ecr + uses: jwalton/gh-ecr-push@v2 + with: + access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} + secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + region: us-east-1 + local-image: my-image:v1 + image: react-app:latest + + - name: create container on ec2 via github hosted runner + uses: appleboy/ssh-action@v1 + with: + host: ${{ secrets.HOST }} + username: ${{ secrets.USERNAME }} + key: ${{ secrets.EC2_SSH_KEY }} + port: ${{ secrets.PORT }} + script: docker run -itd -p 80:80 react-app From 2005e191df1e73fe3f7af15847f022dd9b5f8377 Mon Sep 17 00:00:00 2001 From: RyCloudEng Date: Sat, 11 Apr 2026 13:41:42 -0400 Subject: [PATCH 4/9] Use sudo for docker run in workflow --- .github/workflows/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 0fe74ef..a568e31 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -32,4 +32,4 @@ jobs: username: ${{ secrets.USERNAME }} key: ${{ secrets.EC2_SSH_KEY }} port: ${{ secrets.PORT }} - script: docker run -itd -p 80:80 react-app + script: sudo docker run -itd -p 80:80 react-app From 1d8a48c8c9c8eadb1b5d5735f59ed8f89b770a28 Mon Sep 17 00:00:00 2001 From: RyCloudEng Date: Sat, 11 Apr 2026 13:48:19 -0400 Subject: [PATCH 5/9] Update Docker run command with ECR image --- .github/workflows/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index a568e31..313c138 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -32,4 +32,4 @@ jobs: username: ${{ secrets.USERNAME }} key: ${{ secrets.EC2_SSH_KEY }} port: ${{ secrets.PORT }} - script: sudo docker run -itd -p 80:80 react-app + script: sudo docker run -itd -p 80:80 503561451075.dkr.ecr.us-east-1.amazonaws.com/react-app From f0c72ed4157e928ab62247318014dd4058b784ce Mon Sep 17 00:00:00 2001 From: RyCloudEng Date: Sat, 11 Apr 2026 21:59:56 -0400 Subject: [PATCH 6/9] Update main.yml --- .github/workflows/main.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 313c138..1146eed 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -32,4 +32,7 @@ jobs: username: ${{ secrets.USERNAME }} key: ${{ secrets.EC2_SSH_KEY }} port: ${{ secrets.PORT }} - script: sudo docker run -itd -p 80:80 503561451075.dkr.ecr.us-east-1.amazonaws.com/react-app + script: | + aws ecr get-login-password --region us-east-1 | docker login --username AWS --password-stdin 503561451075.dkr.ecr.us-east-1.amazonaws.com + sudo docker run -itd -p 80:80 503561451075.dkr.ecr.us-east-1.amazonaws.com/react-app + From f0c0b929d4fb5cefc77641ae338f9173ac7f07b4 Mon Sep 17 00:00:00 2001 From: RyCloudEng Date: Sat, 11 Apr 2026 22:14:00 -0400 Subject: [PATCH 7/9] Add docker pull command for react-app in workflow --- .github/workflows/main.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 1146eed..0494bb3 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -34,5 +34,6 @@ jobs: port: ${{ secrets.PORT }} script: | aws ecr get-login-password --region us-east-1 | docker login --username AWS --password-stdin 503561451075.dkr.ecr.us-east-1.amazonaws.com + sudo docker pull 503561451075.dkr.ecr.us-east-1.amazonaws.com/react-app:latest sudo docker run -itd -p 80:80 503561451075.dkr.ecr.us-east-1.amazonaws.com/react-app From f0c59ba5cdaf9b53b30d37bc74f0122f546c3368 Mon Sep 17 00:00:00 2001 From: RyCloudEng Date: Sat, 11 Apr 2026 22:18:22 -0400 Subject: [PATCH 8/9] Update Docker commands in main.yml Removed 'sudo' from docker commands in workflow. --- .github/workflows/main.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 0494bb3..c89a228 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -34,6 +34,6 @@ jobs: port: ${{ secrets.PORT }} script: | aws ecr get-login-password --region us-east-1 | docker login --username AWS --password-stdin 503561451075.dkr.ecr.us-east-1.amazonaws.com - sudo docker pull 503561451075.dkr.ecr.us-east-1.amazonaws.com/react-app:latest - sudo docker run -itd -p 80:80 503561451075.dkr.ecr.us-east-1.amazonaws.com/react-app + docker pull 503561451075.dkr.ecr.us-east-1.amazonaws.com/react-app:latest + docker run -itd -p 80:80 503561451075.dkr.ecr.us-east-1.amazonaws.com/react-app From 3a03824aaa190866f720233ac8942495ae70cdae Mon Sep 17 00:00:00 2001 From: RyCloudEng Date: Sat, 11 Apr 2026 22:20:52 -0400 Subject: [PATCH 9/9] Add sudo to AWS ECR Docker commands --- .github/workflows/main.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index c89a228..9796960 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -33,7 +33,7 @@ jobs: key: ${{ secrets.EC2_SSH_KEY }} port: ${{ secrets.PORT }} script: | - aws ecr get-login-password --region us-east-1 | docker login --username AWS --password-stdin 503561451075.dkr.ecr.us-east-1.amazonaws.com - docker pull 503561451075.dkr.ecr.us-east-1.amazonaws.com/react-app:latest - docker run -itd -p 80:80 503561451075.dkr.ecr.us-east-1.amazonaws.com/react-app + sudo aws ecr get-login-password --region us-east-1 | sudo docker login --username AWS --password-stdin 503561451075.dkr.ecr.us-east-1.amazonaws.com + sudo docker pull 503561451075.dkr.ecr.us-east-1.amazonaws.com/react-app:latest + sudo docker run -itd -p 80:80 503561451075.dkr.ecr.us-east-1.amazonaws.com/react-app