From 6fd6e0e6f731f3b398108ea5b2e5b644a0b7fc2c Mon Sep 17 00:00:00 2001 From: hari95kishore Date: Sat, 23 Jul 2022 01:34:26 +0200 Subject: [PATCH 1/4] setting up circleCI and dockerfile --- .circleci/config.yml | 21 +++++++++++++++++++++ Dockerfile | 22 ++++++++++++++++++++++ 2 files changed, 43 insertions(+) create mode 100644 .circleci/config.yml create mode 100644 Dockerfile diff --git a/.circleci/config.yml b/.circleci/config.yml new file mode 100644 index 000000000..5f9c8e5d8 --- /dev/null +++ b/.circleci/config.yml @@ -0,0 +1,21 @@ +version: 2.1 + +# using circleci orbs for easy understanding and clean ci setup +orbs: + aws-ecs: circleci/aws-ecs@3.0.0 + aws-ecr: circleci/aws-ecr@8.1.2 + +workflows: + build-and-deploy: + jobs: + - aws-ecr/build-and-push-image: + repo: "calculator" + # using commit information as tag + tag: "${CIRCLE_SHA1}" + + - aws-ecs/deploy-service-update: + # making sure deployment is run only after successful image build and push + requires: + - aws-ecr/build-and-push-image + family: "${AWS_RESOURCE_NAME_PREFIX}-service" + cluster: "${AWS_RESOURCE_NAME_PREFIX}-cluster" \ No newline at end of file diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 000000000..7370b0e7e --- /dev/null +++ b/Dockerfile @@ -0,0 +1,22 @@ +# Base image +FROM node:18-alpine + +# Add group and user to avoid root user usage for security reasons. +RUN addgroup calgroup +RUN adduser caluser calgroup + +# copy source code and set up work directory +RUN mkdir /calculator +COPY . /calculator +WORKDIR /calculator + +# change ownership of work directory and use created user +RUN chown -R caluser:calgroup /calculator +USER caluser + +#intimate docker which port will be used +EXPOSE 3000 + +# Run application +RUN npm install +CMD ["npm", "start"] \ No newline at end of file From a5d42cc51242473986aa4da7faeebf3556a23878 Mon Sep 17 00:00:00 2001 From: hari95kishore Date: Sat, 23 Jul 2022 02:01:28 +0200 Subject: [PATCH 2/4] correcting the command --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 7370b0e7e..3fc9a4328 100644 --- a/Dockerfile +++ b/Dockerfile @@ -3,7 +3,7 @@ FROM node:18-alpine # Add group and user to avoid root user usage for security reasons. RUN addgroup calgroup -RUN adduser caluser calgroup +RUN adduser caluser --ingroup calgroup # copy source code and set up work directory RUN mkdir /calculator From 423f9e6ba99389e51b982eaa6e95fc2d093cc187 Mon Sep 17 00:00:00 2001 From: hari95kishore Date: Sat, 23 Jul 2022 02:24:20 +0200 Subject: [PATCH 3/4] changing node version to 16 alipne --- Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index 3fc9a4328..97341ce1c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,9 +1,9 @@ # Base image -FROM node:18-alpine +FROM node:16-alpine # Add group and user to avoid root user usage for security reasons. RUN addgroup calgroup -RUN adduser caluser --ingroup calgroup +RUN adduser -D caluser calgroup # copy source code and set up work directory RUN mkdir /calculator From 2415b81c6f56ac3caf563591ed287e3f42d0cb53 Mon Sep 17 00:00:00 2001 From: hari95kishore Date: Sun, 24 Jul 2022 23:57:38 +0200 Subject: [PATCH 4/4] updating tag, family and cluster name --- .circleci/config.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 5f9c8e5d8..196730f5c 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -11,11 +11,11 @@ workflows: - aws-ecr/build-and-push-image: repo: "calculator" # using commit information as tag - tag: "${CIRCLE_SHA1}" + tag: "latest" - aws-ecs/deploy-service-update: # making sure deployment is run only after successful image build and push requires: - aws-ecr/build-and-push-image - family: "${AWS_RESOURCE_NAME_PREFIX}-service" - cluster: "${AWS_RESOURCE_NAME_PREFIX}-cluster" \ No newline at end of file + family: "calculator" + cluster: "calculator" \ No newline at end of file