├── .circleci └── config.yml ├── .gitignore ├── 1 - Introduccion.md ├── 10 - Ejemplos practicos.md ├── 11 - Cicd-taller-1.md ├── 12 - Cicd-taller-2.md ├── 13 - Procesamiento de datos.md ├── 14 - contenedores para ml.ipynb ├── 2 - Trabajando con docker.md ├── 3 - Trabajando con imagenes.md ├── 4 - Trabajando con contenedores.md ├── 5 - Trabajando con volumenes.md ├── 6 - Copiando data.md ├── 7 - Enlazando contenedores.md ├── 8 - Contruyendo el Dockerfile.md ├── 9 - Llevando el contenedor al registro.md ├── README.md ├── buildspec.yml ├── files └── 2023-12-01.csv ├── flaskapp ├── Dockerfile ├── entrypoint.sh ├── main.py ├── requirements.txt ├── test.py └── utils.py ├── img ├── README.md ├── circleci-complete-2.png ├── circleci-complete.png ├── circleci-config-1.png ├── circleci-config-2.png ├── circleci-config-3.png ├── circleci-config-4.png ├── circleci-config-5.png ├── circleci1.png ├── circleci2.png ├── circleci3.png ├── circleci4.png ├── circleci5.png ├── circleci6.png ├── circleci7.png ├── circleci8.png ├── circlecifinal.png ├── cloud9-1.png ├── cloud9-2.png ├── cloud9-3.png ├── cloud9.png ├── codebuild1.png ├── codebuild10.png ├── codebuild11.png ├── codebuild12.png ├── codebuild13.png ├── codebuild14.png ├── codebuild15.png ├── codebuild16.png ├── codebuild17.png ├── codebuild18.png ├── codebuild2.png ├── codebuild3.png ├── codebuild4.png ├── codebuild5.png ├── codebuild6.png ├── codebuild7.png ├── codebuild8.png ├── codebuild9.png ├── codecommit1.png ├── codecommit2.png ├── codecommit3.png ├── codecommit4.png ├── codecommit5.png ├── codecommit6.png ├── codecommit7.png ├── codepipeline1.png ├── codepipeline2.png ├── codepipeline3.png ├── codepipeline4.png ├── codepipeline5.png ├── codepipeline6.png ├── codepipeline7.png ├── codepipeline8.png ├── docker-architecture.webp ├── dockerhub-1.png ├── dockerhub-2.png ├── dockerhub-final.png ├── dockerhub1.png ├── dockerhub2.png ├── dynamo1.png ├── ecr-build.png ├── ecr-new.png ├── ecr-work-1.png ├── ecr-work-2.png ├── ecr1.png ├── ecr2.png ├── ecr3.png ├── ecr4.png ├── ecr5.png ├── eventbridge1.png ├── eventbridge2.png ├── eventbridge3.png ├── eventbridge4.png ├── eventbridge5.png ├── eventbridge6.png ├── fork1.png ├── fork2.png ├── github-conf1.png ├── github-conf2.png ├── github-conf3.png ├── github-conf4.png ├── github-conf5.png ├── github-conf6.png ├── github-conf7.png ├── github-conf8.png ├── github-conf9.png ├── hello-world.png ├── nat-gateway.png ├── pa-batch1.png ├── pa-batch2.png ├── pa-batch3.png ├── pa-batch4.png ├── pa-batch5.png ├── pa-cloud9.png ├── pa-dockerbuild.png ├── pa-ecr1.png ├── pa-ecr2.png ├── pa-ecr3.png ├── pa-ecr4.png ├── pa-fargate1.png ├── pa-fargate2.png ├── pa-fargate3.png ├── pa-github1.png ├── pa-permissions1.png ├── pa-permissions2.png ├── pa-role1.png ├── pa-s31.png ├── pa-s32.png ├── pa-subnet1.png ├── pa-subnet3.png ├── pa-subnet4.png ├── pa-subnet5.png ├── permissions1.png ├── permissions2.png ├── run-1.png ├── run-2.png ├── run-3.png ├── run-4.png ├── run-5.png ├── stepfunction1.png ├── stepfunction2.png ├── stepfunction3.png ├── stepfunction4.png ├── test1.png ├── test2.png ├── test3.png ├── test4.png └── test5.png └── processapp ├── 2023-12-01.csv ├── Dockerfile ├── processor.py └── requirements.txt /.circleci/config.yml: -------------------------------------------------------------------------------- 1 | version: 2.1 2 | jobs: 3 | test: 4 | docker: 5 | - image: python:3.10.13 6 | steps: 7 | - checkout 8 | - run: 9 | name: Show version 10 | command: python3 --version 11 | - run: 12 | name: Run tests 13 | command: python3 flaskapp/test.py 14 | build: 15 | docker: 16 | - image: cimg/base:2022.09 17 | auth: 18 | username: $DOCKERHUB_USERNAME 19 | password: $DOCKERHUB_PASSWORD 20 | steps: 21 | - checkout 22 | - setup_remote_docker 23 | - run: 24 | name: Copy files 25 | command: cp flaskapp/* . 26 | - run: 27 | name: Build and Push application Docker image 28 | command: | 29 | docker build -t $DOCKERHUB_USERNAME/myapp:${CIRCLE_TAG} . 30 | echo $DOCKERHUB_PASSWORD | docker login -u $DOCKERHUB_USERNAME --password-stdin 31 | docker push $DOCKERHUB_USERNAME/myapp:${CIRCLE_TAG} 32 | 33 | workflows: 34 | example: 35 | jobs: 36 | - test: 37 | filters: 38 | tags: 39 | only: /.*/ 40 | - build: 41 | filters: 42 | tags: 43 | only: /.*/ 44 | branches: 45 | ignore: /.*/ -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | flaskapp/__pycache__ -------------------------------------------------------------------------------- /1 - Introduccion.md: -------------------------------------------------------------------------------- 1 | # Introducción 2 | 3 | ## 1 Introducción 4 | 5 | Docker es un proyecto de código abierto que automatiza el despliegue de aplicaciones dentro de contenedores de software, proporcionando una capa adicional de abstracción y automatización de virtualización de aplicaciones en múltiples sistemas operativos. 6 | 7 | El núcleo de Docker está formado por el motor Docker, un demonio de software de host único que permite crear y administrar contenedores. Antes de empezar a usar Docker, debes instalar el motor Docker en un host, ya sea una computadora de escritorio, portátil o un servidor. 8 | 9 | Docker está escrito en el lenguaje de programación Go y aprovecha varias características del kernel de Linux para ofrecer su funcionalidad. 10 | 11 | ## 2 Arquitectura de Docker 12 | 13 | Docker utiliza una arquitectura cliente-servidor. El cliente de Docker se comunica con el demonio Docker, que realiza el trabajo de crear, ejecutar y distribuir sus contenedores Docker. El cliente de Docker y el demonio pueden ejecutarse en el mismo sistema, o puede conectar un cliente Docker a un demonio Docker remoto. El cliente de Docker y el demonio se comunican mediante una API REST, a través de sockets UNIX o una interfaz de red. 14 | 15 |
17 |
18 |
78 |
79 |
99 |
100 |
105 |
106 |
117 |
118 |
27 |
28 |
10 |
11 |
16 |
17 |
49 |
50 |
55 |
56 |
61 |
62 |
67 |
68 |
73 |
74 |
Hello, World!
") 11 | 12 | if __name__ == '__main__': 13 | unittest.main() -------------------------------------------------------------------------------- /flaskapp/utils.py: -------------------------------------------------------------------------------- 1 | def welcome_message(): 2 | return "Hello, World!
" -------------------------------------------------------------------------------- /img/README.md: -------------------------------------------------------------------------------- 1 | images 2 | -------------------------------------------------------------------------------- /img/circleci-complete-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MaxCloud101/curso-docker/00bb5cadbafbde8a8d9d19768a0a0687e2fdfdc8/img/circleci-complete-2.png -------------------------------------------------------------------------------- /img/circleci-complete.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MaxCloud101/curso-docker/00bb5cadbafbde8a8d9d19768a0a0687e2fdfdc8/img/circleci-complete.png -------------------------------------------------------------------------------- /img/circleci-config-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MaxCloud101/curso-docker/00bb5cadbafbde8a8d9d19768a0a0687e2fdfdc8/img/circleci-config-1.png -------------------------------------------------------------------------------- /img/circleci-config-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MaxCloud101/curso-docker/00bb5cadbafbde8a8d9d19768a0a0687e2fdfdc8/img/circleci-config-2.png -------------------------------------------------------------------------------- /img/circleci-config-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MaxCloud101/curso-docker/00bb5cadbafbde8a8d9d19768a0a0687e2fdfdc8/img/circleci-config-3.png -------------------------------------------------------------------------------- /img/circleci-config-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MaxCloud101/curso-docker/00bb5cadbafbde8a8d9d19768a0a0687e2fdfdc8/img/circleci-config-4.png -------------------------------------------------------------------------------- /img/circleci-config-5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MaxCloud101/curso-docker/00bb5cadbafbde8a8d9d19768a0a0687e2fdfdc8/img/circleci-config-5.png -------------------------------------------------------------------------------- /img/circleci1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MaxCloud101/curso-docker/00bb5cadbafbde8a8d9d19768a0a0687e2fdfdc8/img/circleci1.png -------------------------------------------------------------------------------- /img/circleci2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MaxCloud101/curso-docker/00bb5cadbafbde8a8d9d19768a0a0687e2fdfdc8/img/circleci2.png -------------------------------------------------------------------------------- /img/circleci3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MaxCloud101/curso-docker/00bb5cadbafbde8a8d9d19768a0a0687e2fdfdc8/img/circleci3.png -------------------------------------------------------------------------------- /img/circleci4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MaxCloud101/curso-docker/00bb5cadbafbde8a8d9d19768a0a0687e2fdfdc8/img/circleci4.png -------------------------------------------------------------------------------- /img/circleci5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MaxCloud101/curso-docker/00bb5cadbafbde8a8d9d19768a0a0687e2fdfdc8/img/circleci5.png -------------------------------------------------------------------------------- /img/circleci6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MaxCloud101/curso-docker/00bb5cadbafbde8a8d9d19768a0a0687e2fdfdc8/img/circleci6.png -------------------------------------------------------------------------------- /img/circleci7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MaxCloud101/curso-docker/00bb5cadbafbde8a8d9d19768a0a0687e2fdfdc8/img/circleci7.png -------------------------------------------------------------------------------- /img/circleci8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MaxCloud101/curso-docker/00bb5cadbafbde8a8d9d19768a0a0687e2fdfdc8/img/circleci8.png -------------------------------------------------------------------------------- /img/circlecifinal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MaxCloud101/curso-docker/00bb5cadbafbde8a8d9d19768a0a0687e2fdfdc8/img/circlecifinal.png -------------------------------------------------------------------------------- /img/cloud9-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MaxCloud101/curso-docker/00bb5cadbafbde8a8d9d19768a0a0687e2fdfdc8/img/cloud9-1.png -------------------------------------------------------------------------------- /img/cloud9-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MaxCloud101/curso-docker/00bb5cadbafbde8a8d9d19768a0a0687e2fdfdc8/img/cloud9-2.png -------------------------------------------------------------------------------- /img/cloud9-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MaxCloud101/curso-docker/00bb5cadbafbde8a8d9d19768a0a0687e2fdfdc8/img/cloud9-3.png -------------------------------------------------------------------------------- /img/cloud9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MaxCloud101/curso-docker/00bb5cadbafbde8a8d9d19768a0a0687e2fdfdc8/img/cloud9.png -------------------------------------------------------------------------------- /img/codebuild1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MaxCloud101/curso-docker/00bb5cadbafbde8a8d9d19768a0a0687e2fdfdc8/img/codebuild1.png -------------------------------------------------------------------------------- /img/codebuild10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MaxCloud101/curso-docker/00bb5cadbafbde8a8d9d19768a0a0687e2fdfdc8/img/codebuild10.png -------------------------------------------------------------------------------- /img/codebuild11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MaxCloud101/curso-docker/00bb5cadbafbde8a8d9d19768a0a0687e2fdfdc8/img/codebuild11.png -------------------------------------------------------------------------------- /img/codebuild12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MaxCloud101/curso-docker/00bb5cadbafbde8a8d9d19768a0a0687e2fdfdc8/img/codebuild12.png -------------------------------------------------------------------------------- /img/codebuild13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MaxCloud101/curso-docker/00bb5cadbafbde8a8d9d19768a0a0687e2fdfdc8/img/codebuild13.png -------------------------------------------------------------------------------- /img/codebuild14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MaxCloud101/curso-docker/00bb5cadbafbde8a8d9d19768a0a0687e2fdfdc8/img/codebuild14.png -------------------------------------------------------------------------------- /img/codebuild15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MaxCloud101/curso-docker/00bb5cadbafbde8a8d9d19768a0a0687e2fdfdc8/img/codebuild15.png -------------------------------------------------------------------------------- /img/codebuild16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MaxCloud101/curso-docker/00bb5cadbafbde8a8d9d19768a0a0687e2fdfdc8/img/codebuild16.png -------------------------------------------------------------------------------- /img/codebuild17.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MaxCloud101/curso-docker/00bb5cadbafbde8a8d9d19768a0a0687e2fdfdc8/img/codebuild17.png -------------------------------------------------------------------------------- /img/codebuild18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MaxCloud101/curso-docker/00bb5cadbafbde8a8d9d19768a0a0687e2fdfdc8/img/codebuild18.png -------------------------------------------------------------------------------- /img/codebuild2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MaxCloud101/curso-docker/00bb5cadbafbde8a8d9d19768a0a0687e2fdfdc8/img/codebuild2.png -------------------------------------------------------------------------------- /img/codebuild3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MaxCloud101/curso-docker/00bb5cadbafbde8a8d9d19768a0a0687e2fdfdc8/img/codebuild3.png -------------------------------------------------------------------------------- /img/codebuild4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MaxCloud101/curso-docker/00bb5cadbafbde8a8d9d19768a0a0687e2fdfdc8/img/codebuild4.png -------------------------------------------------------------------------------- /img/codebuild5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MaxCloud101/curso-docker/00bb5cadbafbde8a8d9d19768a0a0687e2fdfdc8/img/codebuild5.png -------------------------------------------------------------------------------- /img/codebuild6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MaxCloud101/curso-docker/00bb5cadbafbde8a8d9d19768a0a0687e2fdfdc8/img/codebuild6.png -------------------------------------------------------------------------------- /img/codebuild7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MaxCloud101/curso-docker/00bb5cadbafbde8a8d9d19768a0a0687e2fdfdc8/img/codebuild7.png -------------------------------------------------------------------------------- /img/codebuild8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MaxCloud101/curso-docker/00bb5cadbafbde8a8d9d19768a0a0687e2fdfdc8/img/codebuild8.png -------------------------------------------------------------------------------- /img/codebuild9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MaxCloud101/curso-docker/00bb5cadbafbde8a8d9d19768a0a0687e2fdfdc8/img/codebuild9.png -------------------------------------------------------------------------------- /img/codecommit1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MaxCloud101/curso-docker/00bb5cadbafbde8a8d9d19768a0a0687e2fdfdc8/img/codecommit1.png -------------------------------------------------------------------------------- /img/codecommit2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MaxCloud101/curso-docker/00bb5cadbafbde8a8d9d19768a0a0687e2fdfdc8/img/codecommit2.png -------------------------------------------------------------------------------- /img/codecommit3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MaxCloud101/curso-docker/00bb5cadbafbde8a8d9d19768a0a0687e2fdfdc8/img/codecommit3.png -------------------------------------------------------------------------------- /img/codecommit4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MaxCloud101/curso-docker/00bb5cadbafbde8a8d9d19768a0a0687e2fdfdc8/img/codecommit4.png -------------------------------------------------------------------------------- /img/codecommit5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MaxCloud101/curso-docker/00bb5cadbafbde8a8d9d19768a0a0687e2fdfdc8/img/codecommit5.png -------------------------------------------------------------------------------- /img/codecommit6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MaxCloud101/curso-docker/00bb5cadbafbde8a8d9d19768a0a0687e2fdfdc8/img/codecommit6.png -------------------------------------------------------------------------------- /img/codecommit7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MaxCloud101/curso-docker/00bb5cadbafbde8a8d9d19768a0a0687e2fdfdc8/img/codecommit7.png -------------------------------------------------------------------------------- /img/codepipeline1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MaxCloud101/curso-docker/00bb5cadbafbde8a8d9d19768a0a0687e2fdfdc8/img/codepipeline1.png -------------------------------------------------------------------------------- /img/codepipeline2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MaxCloud101/curso-docker/00bb5cadbafbde8a8d9d19768a0a0687e2fdfdc8/img/codepipeline2.png -------------------------------------------------------------------------------- /img/codepipeline3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MaxCloud101/curso-docker/00bb5cadbafbde8a8d9d19768a0a0687e2fdfdc8/img/codepipeline3.png -------------------------------------------------------------------------------- /img/codepipeline4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MaxCloud101/curso-docker/00bb5cadbafbde8a8d9d19768a0a0687e2fdfdc8/img/codepipeline4.png -------------------------------------------------------------------------------- /img/codepipeline5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MaxCloud101/curso-docker/00bb5cadbafbde8a8d9d19768a0a0687e2fdfdc8/img/codepipeline5.png -------------------------------------------------------------------------------- /img/codepipeline6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MaxCloud101/curso-docker/00bb5cadbafbde8a8d9d19768a0a0687e2fdfdc8/img/codepipeline6.png -------------------------------------------------------------------------------- /img/codepipeline7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MaxCloud101/curso-docker/00bb5cadbafbde8a8d9d19768a0a0687e2fdfdc8/img/codepipeline7.png -------------------------------------------------------------------------------- /img/codepipeline8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MaxCloud101/curso-docker/00bb5cadbafbde8a8d9d19768a0a0687e2fdfdc8/img/codepipeline8.png -------------------------------------------------------------------------------- /img/docker-architecture.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MaxCloud101/curso-docker/00bb5cadbafbde8a8d9d19768a0a0687e2fdfdc8/img/docker-architecture.webp -------------------------------------------------------------------------------- /img/dockerhub-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MaxCloud101/curso-docker/00bb5cadbafbde8a8d9d19768a0a0687e2fdfdc8/img/dockerhub-1.png -------------------------------------------------------------------------------- /img/dockerhub-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MaxCloud101/curso-docker/00bb5cadbafbde8a8d9d19768a0a0687e2fdfdc8/img/dockerhub-2.png -------------------------------------------------------------------------------- /img/dockerhub-final.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MaxCloud101/curso-docker/00bb5cadbafbde8a8d9d19768a0a0687e2fdfdc8/img/dockerhub-final.png -------------------------------------------------------------------------------- /img/dockerhub1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MaxCloud101/curso-docker/00bb5cadbafbde8a8d9d19768a0a0687e2fdfdc8/img/dockerhub1.png -------------------------------------------------------------------------------- /img/dockerhub2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MaxCloud101/curso-docker/00bb5cadbafbde8a8d9d19768a0a0687e2fdfdc8/img/dockerhub2.png -------------------------------------------------------------------------------- /img/dynamo1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MaxCloud101/curso-docker/00bb5cadbafbde8a8d9d19768a0a0687e2fdfdc8/img/dynamo1.png -------------------------------------------------------------------------------- /img/ecr-build.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MaxCloud101/curso-docker/00bb5cadbafbde8a8d9d19768a0a0687e2fdfdc8/img/ecr-build.png -------------------------------------------------------------------------------- /img/ecr-new.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MaxCloud101/curso-docker/00bb5cadbafbde8a8d9d19768a0a0687e2fdfdc8/img/ecr-new.png -------------------------------------------------------------------------------- /img/ecr-work-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MaxCloud101/curso-docker/00bb5cadbafbde8a8d9d19768a0a0687e2fdfdc8/img/ecr-work-1.png -------------------------------------------------------------------------------- /img/ecr-work-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MaxCloud101/curso-docker/00bb5cadbafbde8a8d9d19768a0a0687e2fdfdc8/img/ecr-work-2.png -------------------------------------------------------------------------------- /img/ecr1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MaxCloud101/curso-docker/00bb5cadbafbde8a8d9d19768a0a0687e2fdfdc8/img/ecr1.png -------------------------------------------------------------------------------- /img/ecr2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MaxCloud101/curso-docker/00bb5cadbafbde8a8d9d19768a0a0687e2fdfdc8/img/ecr2.png -------------------------------------------------------------------------------- /img/ecr3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MaxCloud101/curso-docker/00bb5cadbafbde8a8d9d19768a0a0687e2fdfdc8/img/ecr3.png -------------------------------------------------------------------------------- /img/ecr4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MaxCloud101/curso-docker/00bb5cadbafbde8a8d9d19768a0a0687e2fdfdc8/img/ecr4.png -------------------------------------------------------------------------------- /img/ecr5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MaxCloud101/curso-docker/00bb5cadbafbde8a8d9d19768a0a0687e2fdfdc8/img/ecr5.png -------------------------------------------------------------------------------- /img/eventbridge1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MaxCloud101/curso-docker/00bb5cadbafbde8a8d9d19768a0a0687e2fdfdc8/img/eventbridge1.png -------------------------------------------------------------------------------- /img/eventbridge2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MaxCloud101/curso-docker/00bb5cadbafbde8a8d9d19768a0a0687e2fdfdc8/img/eventbridge2.png -------------------------------------------------------------------------------- /img/eventbridge3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MaxCloud101/curso-docker/00bb5cadbafbde8a8d9d19768a0a0687e2fdfdc8/img/eventbridge3.png -------------------------------------------------------------------------------- /img/eventbridge4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MaxCloud101/curso-docker/00bb5cadbafbde8a8d9d19768a0a0687e2fdfdc8/img/eventbridge4.png -------------------------------------------------------------------------------- /img/eventbridge5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MaxCloud101/curso-docker/00bb5cadbafbde8a8d9d19768a0a0687e2fdfdc8/img/eventbridge5.png -------------------------------------------------------------------------------- /img/eventbridge6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MaxCloud101/curso-docker/00bb5cadbafbde8a8d9d19768a0a0687e2fdfdc8/img/eventbridge6.png -------------------------------------------------------------------------------- /img/fork1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MaxCloud101/curso-docker/00bb5cadbafbde8a8d9d19768a0a0687e2fdfdc8/img/fork1.png -------------------------------------------------------------------------------- /img/fork2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MaxCloud101/curso-docker/00bb5cadbafbde8a8d9d19768a0a0687e2fdfdc8/img/fork2.png -------------------------------------------------------------------------------- /img/github-conf1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MaxCloud101/curso-docker/00bb5cadbafbde8a8d9d19768a0a0687e2fdfdc8/img/github-conf1.png -------------------------------------------------------------------------------- /img/github-conf2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MaxCloud101/curso-docker/00bb5cadbafbde8a8d9d19768a0a0687e2fdfdc8/img/github-conf2.png -------------------------------------------------------------------------------- /img/github-conf3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MaxCloud101/curso-docker/00bb5cadbafbde8a8d9d19768a0a0687e2fdfdc8/img/github-conf3.png -------------------------------------------------------------------------------- /img/github-conf4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MaxCloud101/curso-docker/00bb5cadbafbde8a8d9d19768a0a0687e2fdfdc8/img/github-conf4.png -------------------------------------------------------------------------------- /img/github-conf5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MaxCloud101/curso-docker/00bb5cadbafbde8a8d9d19768a0a0687e2fdfdc8/img/github-conf5.png -------------------------------------------------------------------------------- /img/github-conf6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MaxCloud101/curso-docker/00bb5cadbafbde8a8d9d19768a0a0687e2fdfdc8/img/github-conf6.png -------------------------------------------------------------------------------- /img/github-conf7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MaxCloud101/curso-docker/00bb5cadbafbde8a8d9d19768a0a0687e2fdfdc8/img/github-conf7.png -------------------------------------------------------------------------------- /img/github-conf8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MaxCloud101/curso-docker/00bb5cadbafbde8a8d9d19768a0a0687e2fdfdc8/img/github-conf8.png -------------------------------------------------------------------------------- /img/github-conf9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MaxCloud101/curso-docker/00bb5cadbafbde8a8d9d19768a0a0687e2fdfdc8/img/github-conf9.png -------------------------------------------------------------------------------- /img/hello-world.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MaxCloud101/curso-docker/00bb5cadbafbde8a8d9d19768a0a0687e2fdfdc8/img/hello-world.png -------------------------------------------------------------------------------- /img/nat-gateway.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MaxCloud101/curso-docker/00bb5cadbafbde8a8d9d19768a0a0687e2fdfdc8/img/nat-gateway.png -------------------------------------------------------------------------------- /img/pa-batch1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MaxCloud101/curso-docker/00bb5cadbafbde8a8d9d19768a0a0687e2fdfdc8/img/pa-batch1.png -------------------------------------------------------------------------------- /img/pa-batch2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MaxCloud101/curso-docker/00bb5cadbafbde8a8d9d19768a0a0687e2fdfdc8/img/pa-batch2.png -------------------------------------------------------------------------------- /img/pa-batch3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MaxCloud101/curso-docker/00bb5cadbafbde8a8d9d19768a0a0687e2fdfdc8/img/pa-batch3.png -------------------------------------------------------------------------------- /img/pa-batch4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MaxCloud101/curso-docker/00bb5cadbafbde8a8d9d19768a0a0687e2fdfdc8/img/pa-batch4.png -------------------------------------------------------------------------------- /img/pa-batch5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MaxCloud101/curso-docker/00bb5cadbafbde8a8d9d19768a0a0687e2fdfdc8/img/pa-batch5.png -------------------------------------------------------------------------------- /img/pa-cloud9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MaxCloud101/curso-docker/00bb5cadbafbde8a8d9d19768a0a0687e2fdfdc8/img/pa-cloud9.png -------------------------------------------------------------------------------- /img/pa-dockerbuild.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MaxCloud101/curso-docker/00bb5cadbafbde8a8d9d19768a0a0687e2fdfdc8/img/pa-dockerbuild.png -------------------------------------------------------------------------------- /img/pa-ecr1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MaxCloud101/curso-docker/00bb5cadbafbde8a8d9d19768a0a0687e2fdfdc8/img/pa-ecr1.png -------------------------------------------------------------------------------- /img/pa-ecr2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MaxCloud101/curso-docker/00bb5cadbafbde8a8d9d19768a0a0687e2fdfdc8/img/pa-ecr2.png -------------------------------------------------------------------------------- /img/pa-ecr3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MaxCloud101/curso-docker/00bb5cadbafbde8a8d9d19768a0a0687e2fdfdc8/img/pa-ecr3.png -------------------------------------------------------------------------------- /img/pa-ecr4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MaxCloud101/curso-docker/00bb5cadbafbde8a8d9d19768a0a0687e2fdfdc8/img/pa-ecr4.png -------------------------------------------------------------------------------- /img/pa-fargate1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MaxCloud101/curso-docker/00bb5cadbafbde8a8d9d19768a0a0687e2fdfdc8/img/pa-fargate1.png -------------------------------------------------------------------------------- /img/pa-fargate2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MaxCloud101/curso-docker/00bb5cadbafbde8a8d9d19768a0a0687e2fdfdc8/img/pa-fargate2.png -------------------------------------------------------------------------------- /img/pa-fargate3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MaxCloud101/curso-docker/00bb5cadbafbde8a8d9d19768a0a0687e2fdfdc8/img/pa-fargate3.png -------------------------------------------------------------------------------- /img/pa-github1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MaxCloud101/curso-docker/00bb5cadbafbde8a8d9d19768a0a0687e2fdfdc8/img/pa-github1.png -------------------------------------------------------------------------------- /img/pa-permissions1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MaxCloud101/curso-docker/00bb5cadbafbde8a8d9d19768a0a0687e2fdfdc8/img/pa-permissions1.png -------------------------------------------------------------------------------- /img/pa-permissions2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MaxCloud101/curso-docker/00bb5cadbafbde8a8d9d19768a0a0687e2fdfdc8/img/pa-permissions2.png -------------------------------------------------------------------------------- /img/pa-role1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MaxCloud101/curso-docker/00bb5cadbafbde8a8d9d19768a0a0687e2fdfdc8/img/pa-role1.png -------------------------------------------------------------------------------- /img/pa-s31.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MaxCloud101/curso-docker/00bb5cadbafbde8a8d9d19768a0a0687e2fdfdc8/img/pa-s31.png -------------------------------------------------------------------------------- /img/pa-s32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MaxCloud101/curso-docker/00bb5cadbafbde8a8d9d19768a0a0687e2fdfdc8/img/pa-s32.png -------------------------------------------------------------------------------- /img/pa-subnet1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MaxCloud101/curso-docker/00bb5cadbafbde8a8d9d19768a0a0687e2fdfdc8/img/pa-subnet1.png -------------------------------------------------------------------------------- /img/pa-subnet3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MaxCloud101/curso-docker/00bb5cadbafbde8a8d9d19768a0a0687e2fdfdc8/img/pa-subnet3.png -------------------------------------------------------------------------------- /img/pa-subnet4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MaxCloud101/curso-docker/00bb5cadbafbde8a8d9d19768a0a0687e2fdfdc8/img/pa-subnet4.png -------------------------------------------------------------------------------- /img/pa-subnet5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MaxCloud101/curso-docker/00bb5cadbafbde8a8d9d19768a0a0687e2fdfdc8/img/pa-subnet5.png -------------------------------------------------------------------------------- /img/permissions1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MaxCloud101/curso-docker/00bb5cadbafbde8a8d9d19768a0a0687e2fdfdc8/img/permissions1.png -------------------------------------------------------------------------------- /img/permissions2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MaxCloud101/curso-docker/00bb5cadbafbde8a8d9d19768a0a0687e2fdfdc8/img/permissions2.png -------------------------------------------------------------------------------- /img/run-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MaxCloud101/curso-docker/00bb5cadbafbde8a8d9d19768a0a0687e2fdfdc8/img/run-1.png -------------------------------------------------------------------------------- /img/run-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MaxCloud101/curso-docker/00bb5cadbafbde8a8d9d19768a0a0687e2fdfdc8/img/run-2.png -------------------------------------------------------------------------------- /img/run-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MaxCloud101/curso-docker/00bb5cadbafbde8a8d9d19768a0a0687e2fdfdc8/img/run-3.png -------------------------------------------------------------------------------- /img/run-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MaxCloud101/curso-docker/00bb5cadbafbde8a8d9d19768a0a0687e2fdfdc8/img/run-4.png -------------------------------------------------------------------------------- /img/run-5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MaxCloud101/curso-docker/00bb5cadbafbde8a8d9d19768a0a0687e2fdfdc8/img/run-5.png -------------------------------------------------------------------------------- /img/stepfunction1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MaxCloud101/curso-docker/00bb5cadbafbde8a8d9d19768a0a0687e2fdfdc8/img/stepfunction1.png -------------------------------------------------------------------------------- /img/stepfunction2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MaxCloud101/curso-docker/00bb5cadbafbde8a8d9d19768a0a0687e2fdfdc8/img/stepfunction2.png -------------------------------------------------------------------------------- /img/stepfunction3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MaxCloud101/curso-docker/00bb5cadbafbde8a8d9d19768a0a0687e2fdfdc8/img/stepfunction3.png -------------------------------------------------------------------------------- /img/stepfunction4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MaxCloud101/curso-docker/00bb5cadbafbde8a8d9d19768a0a0687e2fdfdc8/img/stepfunction4.png -------------------------------------------------------------------------------- /img/test1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MaxCloud101/curso-docker/00bb5cadbafbde8a8d9d19768a0a0687e2fdfdc8/img/test1.png -------------------------------------------------------------------------------- /img/test2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MaxCloud101/curso-docker/00bb5cadbafbde8a8d9d19768a0a0687e2fdfdc8/img/test2.png -------------------------------------------------------------------------------- /img/test3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MaxCloud101/curso-docker/00bb5cadbafbde8a8d9d19768a0a0687e2fdfdc8/img/test3.png -------------------------------------------------------------------------------- /img/test4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MaxCloud101/curso-docker/00bb5cadbafbde8a8d9d19768a0a0687e2fdfdc8/img/test4.png -------------------------------------------------------------------------------- /img/test5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MaxCloud101/curso-docker/00bb5cadbafbde8a8d9d19768a0a0687e2fdfdc8/img/test5.png -------------------------------------------------------------------------------- /processapp/2023-12-01.csv: -------------------------------------------------------------------------------- 1 | user_id,item,price 2 | 1,5,10 3 | 1,6,8 4 | 1,5,10 5 | 2,5,10 6 | -------------------------------------------------------------------------------- /processapp/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM python:3.10.13 2 | 3 | RUN apt-get update 4 | 5 | WORKDIR /app 6 | 7 | COPY . . 8 | 9 | RUN pip install -r requirements.txt 10 | -------------------------------------------------------------------------------- /processapp/processor.py: -------------------------------------------------------------------------------- 1 | # This file calculate how much spend a user by date, the file contain the date 2 | import boto3 3 | import os 4 | 5 | dynamodb = boto3.resource('dynamodb') 6 | s3 = boto3.client('s3') 7 | 8 | 9 | bucket = os.environ['S3_BUCKET'] 10 | key = os.environ['S3_KEY'] 11 | 12 | print(bucket) 13 | print(key) 14 | 15 | s3.download_file(bucket, key, key) 16 | 17 | date = key.split('.') 18 | date = date[0] 19 | 20 | file1 = open(key, 'r') 21 | Lines = file1.readlines() 22 | 23 | list_user_id = [] 24 | list_spend_by_user = [] 25 | 26 | for line in Lines: 27 | 28 | if line[-1] == '\n': 29 | line = line[:-1] 30 | 31 | raw =line.split(',') 32 | 33 | if raw[0] != 'user_id': 34 | user_id = raw[0] 35 | if user_id not in list_user_id: 36 | list_user_id.append(user_id) 37 | list_spend_by_user.append(int(raw[2])) 38 | 39 | else: 40 | position = list_user_id.index(user_id) 41 | list_spend_by_user[position] = list_spend_by_user[position] + int(raw[2]) 42 | 43 | print(list_user_id) 44 | print(list_spend_by_user) 45 | 46 | table = dynamodb.Table('Sales') 47 | 48 | with table.batch_writer() as writer: 49 | for (user_id, spend_by_user) in zip(list_user_id, list_spend_by_user): 50 | print(date) 51 | 52 | writer.put_item(Item={ 53 | 'date': date, 54 | 'user_id': user_id, 55 | 'spend': spend_by_user 56 | }) 57 | -------------------------------------------------------------------------------- /processapp/requirements.txt: -------------------------------------------------------------------------------- 1 | boto3==1.34.42 --------------------------------------------------------------------------------