- Create a production Dockerfile that uses multistage Docker builds
- Utilize Amazon Elastic Container Registry (ECR) to store built images
- Configure CodeBuild to run when code is checked in to GitHub
- Run unit and integrations tests and check code for quality and formatting issues on CodeBuild
- Configure RDS for data persistence
- Configure an Application Load Balancer (ALB) along with ECS to run a set of microservices
- Send container logs to CloudWatch
- Update a running container via a zero-downtime deployment strategy to not disrupt the current users your application
- Use AWS Fargate with ECS to deploy a microservice
- Spin up AWS infrastructure via Terraform
- Requirements.txt file:
-
can't include
psycopg2-binary == 2.9.3
due to libpq version 10 issue -
instead include this as part of your dependencies in your Dockerfile:
RUN apt update -y \ && apt install -y build-essential libpq-dev RUN pip3 install psycopg2-binary --no-binary psycopg2-binary
-
- When deploying on Fargate, must indicate "--platform=linux/amd64" in your Dockerfile:
-
example:
FROM --platform=linux/amd64 public.ecr.aws/docker/library/node:18-alpine as builder
-
-
If browser is trying to open a websocket back to the node server to ws://localhost:3000 add the following as an environment variable:
WDS_SOCKET_PORT=0