Olá amigos, boa tarde, eu to tendo um problema pra subir a aplicação que foi utilizada no curso mencionado.
Após todas as configurações estarem corretamente definidas no projeto terraform para realização do provisionamento da infraestrutura, eu aparentemente tive um problema com o mapeamento de portas porque eu recebi a seguite excessão:
InvalidParameterException: The container production did not have a container port 8000 defined.
Vou fornecer meu dockerfile porque eu realmente nem imagino onde posso ter errado.
FROM python:3.9
ENV PYTHONDONTWRITEBYTECODE=1
ENV PYTHONUNBUFFERED=1
WORKDIR /home/ubuntu/tcc/
COPY . /home/ubuntu/tcc/
RUN pip install --upgrade pip setuptools wheel && pip install -r requirements.txt
RUN sed -i "s/ALLOWED_HOSTS = \[\]/ALLOWED_HOSTS = \['*'\]/" setup/settings.py
RUN python manage.py migrate
RUN python manage.py loaddata clientes.json
EXPOSE 8000
ENTRYPOINT ["python", "manage.py", "runserver", "0.0.0.0:8000"]
vou fornecer tambem o meu arquivo referente ao ecs no terraform:
module "ecs" {
source = "terraform-aws-modules/ecs/aws"
cluster_name = var.environment
cluster_settings = [
{
"name" : "containerInsights",
"value" : "enabled"
}
]
default_capacity_provider_use_fargate = true
fargate_capacity_providers = {
FARGATE = {
default_capacity_provider_strategy ={
weight = 1
}
}
}
}
resource "aws_ecs_task_definition" "django_api" {
family = "Django-API"
requires_compatibilities = ["FARGATE"]
network_mode = "awsvpc"
cpu = 256
memory = 512
execution_role_arn = aws_iam_role.role.arn
container_definitions = jsonencode(
[
{
"name" = "production"
"image" = "537124935228.dkr.ecr.us-east-1.amazonaws.com/production:1.0"
"cpu" = 256
"memory" = 512
"essential" = true
"portMapping" = [
{
"containerPort" = 8000
"hostPort" = 8000
}
]
}
]
)
}
resource "aws_ecs_service" "django_api" {
name = "Django-API"
cluster = module.ecs.cluster_id
task_definition = aws_ecs_task_definition.django_api.arn
desired_count = 3
load_balancer {
target_group_arn = aws_lb_target_group.target_group.arn
container_name = "production"
container_port = 8000
}
network_configuration {
subnets = module.vpc.private_subnets
security_groups = [ aws_security_group.private_net.id ]
}
capacity_provider_strategy {
capacity_provider = "FARGATE"
weight = 1
}
}
Conto com a colaboração de vcs e desde já agradeço ao time e comunidade !