From cfbca92b591d033a7d708e1e3d516e3722f6bab7 Mon Sep 17 00:00:00 2001 From: Williams C Date: Tue, 26 Nov 2024 14:37:36 -0300 Subject: [PATCH] Current Mac Files --- .../docker-compose.yml | 12 + .../docker-compose.yml | 28 +++ compose-env-airflow/docker-compose.yaml | 222 ++++++++++++++++++ compose-env-all-spark/docker-compose.yml | 10 + .../docker-compose.yml | 47 ++++ .../old.docker-compose.yml | 76 ++++++ compose-env-curso-oracle/docker-compose.yml | 24 ++ .../docker-compose.yml | 33 +++ compose-env-laravel-8/docker-compose.yml | 63 +++++ .../docker-file-nginx/Dockerfile | 4 + .../docker-file-nginx/conf/default.conf | 31 +++ .../docker-file-php/90-xdebug.ini | 5 + .../docker-file-php/Dockerfile | 19 ++ compose-env-laravel/docker-compose.yml | 66 ++++++ .../docker-file-nginx/Dockerfile | 4 + .../docker-file-nginx/conf/default.conf | 31 +++ .../docker-file-php/90-xdebug.ini | 5 + .../docker-file-php/Dockerfile | 19 ++ compose-env-mern/docker-compose.yml | 47 ++++ compose-env-mongodb/docker-compose.yml | 36 +++ compose-env-mysql/docker-compose.yml | 20 ++ compose-env-postgresql/docker-compose.yml | 22 ++ .../docker-compose.yml | 38 +++ compose-env-siad/Dockerfile | 19 ++ compose-env-siad/docker-compose.yml | 49 ++++ compose-simple-express/.dockerignore | 5 + compose-simple-express/Dockerfile | 6 + tesloshop-backend-main/.env.template | 15 ++ tesloshop-backend-main/.gitignore | 1 + tesloshop-backend-main/README.md | 27 +++ tesloshop-backend-main/docker-compose.yml | 39 +++ 31 files changed, 1023 insertions(+) create mode 100644 compose-app-calendar-backend/docker-compose.yml create mode 100644 compose-app-expenses-backend/docker-compose.yml create mode 100755 compose-env-airflow/docker-compose.yaml create mode 100755 compose-env-all-spark/docker-compose.yml create mode 100755 compose-env-app-custom-expenses/docker-compose.yml create mode 100755 compose-env-app-custom-expenses/old.docker-compose.yml create mode 100755 compose-env-curso-oracle/docker-compose.yml create mode 100755 compose-env-java-spring-mysql/docker-compose.yml create mode 100755 compose-env-laravel-8/docker-compose.yml create mode 100755 compose-env-laravel-8/docker-file-nginx/Dockerfile create mode 100755 compose-env-laravel-8/docker-file-nginx/conf/default.conf create mode 100755 compose-env-laravel-8/docker-file-php/90-xdebug.ini create mode 100755 compose-env-laravel-8/docker-file-php/Dockerfile create mode 100755 compose-env-laravel/docker-compose.yml create mode 100755 compose-env-laravel/docker-file-nginx/Dockerfile create mode 100755 compose-env-laravel/docker-file-nginx/conf/default.conf create mode 100755 compose-env-laravel/docker-file-php/90-xdebug.ini create mode 100755 compose-env-laravel/docker-file-php/Dockerfile create mode 100755 compose-env-mern/docker-compose.yml create mode 100755 compose-env-mongodb/docker-compose.yml create mode 100755 compose-env-mysql/docker-compose.yml create mode 100755 compose-env-postgresql/docker-compose.yml create mode 100755 compose-env-react-hooks-mern/docker-compose.yml create mode 100755 compose-env-siad/Dockerfile create mode 100755 compose-env-siad/docker-compose.yml create mode 100644 compose-simple-express/.dockerignore create mode 100644 compose-simple-express/Dockerfile create mode 100644 tesloshop-backend-main/.env.template create mode 100644 tesloshop-backend-main/.gitignore create mode 100644 tesloshop-backend-main/README.md create mode 100644 tesloshop-backend-main/docker-compose.yml diff --git a/compose-app-calendar-backend/docker-compose.yml b/compose-app-calendar-backend/docker-compose.yml new file mode 100644 index 0000000..711f444 --- /dev/null +++ b/compose-app-calendar-backend/docker-compose.yml @@ -0,0 +1,12 @@ +services: + app-be: + image: us-central1-docker.pkg.dev/practice-ci-cd-williams/mis-desarrollos/app-calendar-backend:latest + container_name: backend-calendar + environment: + - APP_EXP_HOST=app-to-practice.hlngc5z.mongodb.net + - APP_EXP_DB=db-calendar + - APP_EXP_USER=usr-calendar + - APP_EXP_PWD=DtM0EXMkNPm71JDF + - APP_EXP_JWT_KEY=m1.cl4V3-$3CR3t4.P4ra14papIr1C0IP1 + ports: + - 8090:8080 \ No newline at end of file diff --git a/compose-app-expenses-backend/docker-compose.yml b/compose-app-expenses-backend/docker-compose.yml new file mode 100644 index 0000000..f43cdd4 --- /dev/null +++ b/compose-app-expenses-backend/docker-compose.yml @@ -0,0 +1,28 @@ +services: + app-be: + image: app-expenses-backend:latest + container_name: backend + environment: + - APP_EXP_JWT_KEY=p4r@.lap4p1RiC01pY$ + - APP_EXP_HOST=app-to-practice.hlngc5z.mongodb.net + - APP_EXP_USER=usr-expenses + - APP_EXP_PWD=3xp3nse5.u53r + - APP_EXP_DB=db-expenses + ports: + - 8090:8080 + app-be-localhost: + image: app-expenses-backend:latest + container_name: backend-localhost + environment: + - APP_EXP_JWT_KEY=p4r@.lap4p1RiC01pY$ + - APP_EXP_HOST=localhost:9009 + - APP_EXP_USER=usr-expenses + - APP_EXP_PWD=3xp3nse5.u53r + - APP_EXP_DB=db-expenses + ports: + - 8091:8080 + networks: + - expenses-stack +networks: + expenses-stack: + driver: bridge \ No newline at end of file diff --git a/compose-env-airflow/docker-compose.yaml b/compose-env-airflow/docker-compose.yaml new file mode 100755 index 0000000..0b45b66 --- /dev/null +++ b/compose-env-airflow/docker-compose.yaml @@ -0,0 +1,222 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# + +# Basic Airflow cluster configuration for CeleryExecutor with Redis and PostgreSQL. +# +# WARNING: This configuration is for local development. Do not use it in a production deployment. +# +# This configuration supports basic configuration using environment variables or an .env file +# The following variables are supported: +# +# AIRFLOW_IMAGE_NAME - Docker image name used to run Airflow. +# Default: apache/airflow:2.8.4 +# AIRFLOW_UID - User ID in Airflow containers +# Default: 50000 +# AIRFLOW_PROJ_DIR - Base path to which all the files will be volumed. +# Default: . +# Those configurations are useful mostly in case of standalone testing/running Airflow in test/try-out mode +# +# _AIRFLOW_WWW_USER_USERNAME - Username for the administrator account (if requested). +# Default: airflow +# _AIRFLOW_WWW_USER_PASSWORD - Password for the administrator account (if requested). +# Default: airflow +# _PIP_ADDITIONAL_REQUIREMENTS - Additional PIP requirements to add when starting all containers. +# Use this option ONLY for quick checks. Installing requirements at container +# startup is done EVERY TIME the service is started. +# A better way is to build a custom image or extend the official image +# as described in https://airflow.apache.org/docs/docker-stack/build.html. +# Default: '' +# +# Feel free to modify this file to suit your needs. +--- +x-airflow-common: + &airflow-common + # In order to add custom dependencies or upgrade provider packages you can use your extended image. + # Comment the image line, place your Dockerfile in the directory where you placed the docker-compose.yaml + # and uncomment the "build" line below, Then run `docker-compose build` to build the images. + image: ${AIRFLOW_IMAGE_NAME:-apache/airflow:2.8.4} + # build: . + environment: + &airflow-common-env + AIRFLOW__CORE__EXECUTOR: LocalExecutor + AIRFLOW__DATABASE__SQL_ALCHEMY_CONN: postgresql+psycopg2://airflow:airflow@postgres/airflow + AIRFLOW__CORE__FERNET_KEY: '' + AIRFLOW__CORE__DAGS_ARE_PAUSED_AT_CREATION: 'true' + AIRFLOW__CORE__LOAD_EXAMPLES: 'true' + AIRFLOW__API__AUTH_BACKENDS: 'airflow.api.auth.backend.basic_auth,airflow.api.auth.backend.session' + # yamllint disable rule:line-length + # Use simple http server on scheduler for health checks + # See https://airflow.apache.org/docs/apache-airflow/stable/administration-and-deployment/logging-monitoring/check-health.html#scheduler-health-check-server + # yamllint enable rule:line-length + AIRFLOW__SCHEDULER__ENABLE_HEALTH_CHECK: 'true' + # WARNING: Use _PIP_ADDITIONAL_REQUIREMENTS option ONLY for a quick checks + # for other purpose (development, test and especially production usage) build/extend Airflow image. + _PIP_ADDITIONAL_REQUIREMENTS: ${_PIP_ADDITIONAL_REQUIREMENTS:-} + volumes: + - ${AIRFLOW_PROJ_DIR:-.}/dags:/opt/airflow/dags + - ${AIRFLOW_PROJ_DIR:-.}/logs:/opt/airflow/logs + - ${AIRFLOW_PROJ_DIR:-.}/config:/opt/airflow/config + - ${AIRFLOW_PROJ_DIR:-.}/plugins:/opt/airflow/plugins + user: "${AIRFLOW_UID:-50000}:0" + depends_on: + &airflow-common-depends-on + postgres: + condition: service_healthy + +services: + postgres: + image: postgres:13 + environment: + POSTGRES_USER: airflow + POSTGRES_PASSWORD: airflow + POSTGRES_DB: airflow + volumes: + - postgres-db-volume:/var/lib/postgresql/data + healthcheck: + test: ["CMD", "pg_isready", "-U", "airflow"] + interval: 10s + retries: 5 + start_period: 5s + restart: always + + airflow-webserver: + <<: *airflow-common + command: webserver + ports: + - "8080:8080" + healthcheck: + test: ["CMD", "curl", "--fail", "http://localhost:8080/health"] + interval: 30s + timeout: 10s + retries: 5 + start_period: 30s + restart: always + depends_on: + <<: *airflow-common-depends-on + airflow-init: + condition: service_completed_successfully + + airflow-scheduler: + <<: *airflow-common + command: scheduler + healthcheck: + test: ["CMD", "curl", "--fail", "http://localhost:8974/health"] + interval: 30s + timeout: 10s + retries: 5 + start_period: 30s + restart: always + depends_on: + <<: *airflow-common-depends-on + airflow-init: + condition: service_completed_successfully + + airflow-triggerer: + <<: *airflow-common + command: triggerer + healthcheck: + test: ["CMD-SHELL", 'airflow jobs check --job-type TriggererJob --hostname "$${HOSTNAME}"'] + interval: 30s + timeout: 10s + retries: 5 + start_period: 30s + restart: always + depends_on: + <<: *airflow-common-depends-on + airflow-init: + condition: service_completed_successfully + + airflow-init: + <<: *airflow-common + entrypoint: /bin/bash + # yamllint disable rule:line-length + command: + - -c + - | + if [[ -z "${AIRFLOW_UID}" ]]; then + echo + echo -e "\033[1;33mWARNING!!!: AIRFLOW_UID not set!\e[0m" + echo "If you are on Linux, you SHOULD follow the instructions below to set " + echo "AIRFLOW_UID environment variable, otherwise files will be owned by root." + echo "For other operating systems you can get rid of the warning with manually created .env file:" + echo " See: https://airflow.apache.org/docs/apache-airflow/stable/howto/docker-compose/index.html#setting-the-right-airflow-user" + echo + fi + one_meg=1048576 + mem_available=$$(($$(getconf _PHYS_PAGES) * $$(getconf PAGE_SIZE) / one_meg)) + cpus_available=$$(grep -cE 'cpu[0-9]+' /proc/stat) + disk_available=$$(df / | tail -1 | awk '{print $$4}') + warning_resources="false" + if (( mem_available < 4000 )) ; then + echo + echo -e "\033[1;33mWARNING!!!: Not enough memory available for Docker.\e[0m" + echo "At least 4GB of memory required. You have $$(numfmt --to iec $$((mem_available * one_meg)))" + echo + warning_resources="true" + fi + if (( cpus_available < 2 )); then + echo + echo -e "\033[1;33mWARNING!!!: Not enough CPUS available for Docker.\e[0m" + echo "At least 2 CPUs recommended. You have $${cpus_available}" + echo + warning_resources="true" + fi + if (( disk_available < one_meg * 10 )); then + echo + echo -e "\033[1;33mWARNING!!!: Not enough Disk space available for Docker.\e[0m" + echo "At least 10 GBs recommended. You have $$(numfmt --to iec $$((disk_available * 1024 )))" + echo + warning_resources="true" + fi + if [[ $${warning_resources} == "true" ]]; then + echo + echo -e "\033[1;33mWARNING!!!: You have not enough resources to run Airflow (see above)!\e[0m" + echo "Please follow the instructions to increase amount of resources available:" + echo " https://airflow.apache.org/docs/apache-airflow/stable/howto/docker-compose/index.html#before-you-begin" + echo + fi + mkdir -p /sources/logs /sources/dags /sources/plugins + chown -R "${AIRFLOW_UID}:0" /sources/{logs,dags,plugins} + exec /entrypoint airflow version + # yamllint enable rule:line-length + environment: + <<: *airflow-common-env + _AIRFLOW_DB_MIGRATE: 'true' + _AIRFLOW_WWW_USER_CREATE: 'true' + _AIRFLOW_WWW_USER_USERNAME: ${_AIRFLOW_WWW_USER_USERNAME:-airflow} + _AIRFLOW_WWW_USER_PASSWORD: ${_AIRFLOW_WWW_USER_PASSWORD:-airflow} + _PIP_ADDITIONAL_REQUIREMENTS: '' + user: "0:0" + volumes: + - ${AIRFLOW_PROJ_DIR:-.}:/sources + + airflow-cli: + <<: *airflow-common + profiles: + - debug + environment: + <<: *airflow-common-env + CONNECTION_CHECK_MAX_COUNT: "0" + # Workaround for entrypoint issue. See: https://github.com/apache/airflow/issues/16252 + command: + - bash + - -c + - airflow + +volumes: + postgres-db-volume: diff --git a/compose-env-all-spark/docker-compose.yml b/compose-env-all-spark/docker-compose.yml new file mode 100755 index 0000000..55fa0bd --- /dev/null +++ b/compose-env-all-spark/docker-compose.yml @@ -0,0 +1,10 @@ +version: '3.7' + +services: + pyspark-notebook: + image: jupyter/pyspark-notebook:latest + container_name: jupyter-pyspark-notebook + volumes: + - /Volumes/HDD_MINI/dev_docker/docker_all_spark:/home/jovyan/work/data + ports: + - 8888:8888 \ No newline at end of file diff --git a/compose-env-app-custom-expenses/docker-compose.yml b/compose-env-app-custom-expenses/docker-compose.yml new file mode 100755 index 0000000..747cad8 --- /dev/null +++ b/compose-env-app-custom-expenses/docker-compose.yml @@ -0,0 +1,47 @@ +version: "3" + +services: + app-db: + image: mongodb/mongodb-community-server:4.4.13-ubi8 + #image: mongodb/mongodb-community-server:4.4.6-ubi8 + #image: mongodb/mongodb-community-server:latest + #image: mongo:7.0.5-rc0-jammy + container_name: api-db + environment: + MONGODB_INITDB_ROOT_USERNAME: root + MONGODB_INITDB_ROOT_PASSWORD: test + MONGO_INITDB_DATABASE: dbAppExpenses + volumes: + - /Volumes/HDD_MINI/dev_docker/app-custom-expenses/db/mongo-init.js:/docker-entrypoint-initdb.d/*.js:ro + - /Volumes/HDD_MINI/dev_docker/app-custom-expenses/db/db:/data/db + - /Volumes/HDD_MINI/dev_docker/app-custom-expenses/db/configdb/:/data/configdb + - /Volumes/HDD_MINI/dev_docker/app-custom-expenses/db/log/:/var/log/mongodb + ports: + - 38082:27017 + networks: + - app-stack + app-be-api: + depends_on: + - app-db + image: node:21-alpine3.18 + container_name: api-be + ports: + - 38081:8080 + working_dir: /home/node/app + volumes: + - /Volumes/HDD_MINI/dev_docker/app-custom-expenses/be/be-api-expenses:/home/node/app + - /Volumes/HDD_MINI/dev_docker/app-custom-expenses/be/be-api-expenses/node_modules:/home/node/app/node_modules + environment: + - NODE_ENV=production + #Este comando es para inicializar la app, esta es la mas comun? + #si es que estoy usando nodemon - typescript - ts.node + command: npm start + #Este comando es para inicializar la app con live reload (nodemon) + #si es que no trabajo con typescript + #command: npm run dev + networks: + - app-stack + # app-fe: +networks: + app-stack: + driver: bridge \ No newline at end of file diff --git a/compose-env-app-custom-expenses/old.docker-compose.yml b/compose-env-app-custom-expenses/old.docker-compose.yml new file mode 100755 index 0000000..618770e --- /dev/null +++ b/compose-env-app-custom-expenses/old.docker-compose.yml @@ -0,0 +1,76 @@ +version: "3" + +services: + app-db: + image: mongodb/mongodb-community-server:4.4.13-ubi8 + environment: + MONGO_INITDB_ROOT_USERNAME: root + MONGO_INITDB_ROOT_PASSWORD: test + MONGO_INITDB_DATABASE: dbAppExpenses + volumes: + - /Volumes/HDD_MINI/dev_docker/app-custom-expenses/db/mongo-init.js:/docker-entrypoint-initdb.d/*.js:ro + - /Volumes/HDD_MINI/dev_docker/app-custom-expenses/db/db/:/data/db + #- /Volumes/HDD_MINI/dev_docker/app-custom-expenses/db/configdb/:/data/configdb + - /Volumes/HDD_MINI/dev_docker/app-custom-expenses/db/log/:/var/log/mongodb + ports: + - 38082:27017 + networks: + - app-stack + app-db-admin: + depends_on: + - app-db + image: mongo-express:latest + ports: + - 58081:8081 + environment: + ME_CONFIG_BASICAUTH_USERNAME: admin + ME_CONFIG_BASICAUTH_PASSWORD: test + ME_CONFIG_MONGODB_ENABLE_ADMIN: "true" + ME_CONFIG_MONGODB_ADMINUSERNAME: root + ME_CONFIG_MONGODB_ADMINPASSWORD: test + ME_CONFIG_MONGODB_PORT: 27017 + ME_CONFIG_MONGODB_SERVER: app-db + networks: + - app-stack + app-be: + depends_on: + - app-db + image: node:21-alpine3.18 + ports: + - 38080:8080 + working_dir: /home/node/app + volumes: + - /Volumes/HDD_MINI/dev_docker/app-custom-expenses/be/be-01:/home/node/app + - /Volumes/HDD_MINI/dev_docker/app-custom-expenses/be/be-01/node_modules:/home/node/app/node_modules + environment: + - NODE_ENV=production + #Este comando es para inicializar la app + #command: npm start + #Este comando es para inicializar la app con live reload (nodemon) + command: npm run dev + networks: + - app-stack + app-be-api: + depends_on: + - app-db + image: node:21-alpine3.18 + ports: + - 38081:8080 + working_dir: /home/node/app + volumes: + - /Volumes/HDD_MINI/dev_docker/app-custom-expenses/be/be-api:/home/node/app + - /Volumes/HDD_MINI/dev_docker/app-custom-expenses/be/be-api/node_modules:/home/node/app/node_modules + environment: + - NODE_ENV=production + #Este comando es para inicializar la app, esta es la mas comun? + #si es que estoy usando nodemon - typescript - ts.node + command: npm start + #Este comando es para inicializar la app con live reload (nodemon) + #si es que no trabajo con typescript + #command: npm run dev + networks: + - app-stack + # app-fe: +networks: + app-stack: + driver: bridge \ No newline at end of file diff --git a/compose-env-curso-oracle/docker-compose.yml b/compose-env-curso-oracle/docker-compose.yml new file mode 100755 index 0000000..af6af12 --- /dev/null +++ b/compose-env-curso-oracle/docker-compose.yml @@ -0,0 +1,24 @@ +version: "3" + +services: + front-screenmatch: + image: httpd:latest + container_name: web-screenmatch + volumes: + - "/Volumes/HDD_MINI/dev_varios/curso-oracle-backend/2086-screenmatch-front-end/:/usr/local/apache2/htdocs/" + ports: + - 9080:80 + networks: + - front-end-stack + front-genera-frases: + image: httpd:latest + container_name: web-genera-frases + volumes: + - "/Volumes/HDD_MINI/dev_varios/curso-oracle-backend/2086-java-desafio-front/:/usr/local/apache2/htdocs/" + ports: + - 9081:80 + networks: + - front-end-stack +networks: + front-end-stack: + driver: bridge \ No newline at end of file diff --git a/compose-env-java-spring-mysql/docker-compose.yml b/compose-env-java-spring-mysql/docker-compose.yml new file mode 100755 index 0000000..db5853b --- /dev/null +++ b/compose-env-java-spring-mysql/docker-compose.yml @@ -0,0 +1,33 @@ +services: + db: + image: bitnami/mysql:8.0 + container_name: spring-db + environment: + MYSQL_USER: test + MYSQL_PASSWORD: test + MYSQL_ROOT_PASSWORD: test + MYSQL_ALLOW_EMPTY_PASSWORD: 1 + volumes: + - /Volumes/HDD_MINI/dev_docker/docker_mysql/mysql_java_spring:/bitnami/mysql/data + ports: + - 9007:3306 + networks: + - spring-stack + spring-api: + image: choboboy/my_own_container:latest + container_name: spring-forohub + environment: + - ALURA_HOST=db + - ALURA_DB=forohub + - ALURA_DB_USR=root + - ALURA_DB_PWD=test + - ALURA_JWT_KEY=123456 + depends_on: + - db + ports: + - 9008:8080 + networks: + - spring-stack +networks: + spring-stack: + driver: bridge \ No newline at end of file diff --git a/compose-env-laravel-8/docker-compose.yml b/compose-env-laravel-8/docker-compose.yml new file mode 100755 index 0000000..8a4e36c --- /dev/null +++ b/compose-env-laravel-8/docker-compose.yml @@ -0,0 +1,63 @@ +version: "3" + +services: + db: + image: mysql:latest + container_name: laravel-blog-db + environment: + MYSQL_DATABASE: laravel + MYSQL_USER: test + MYSQL_PASSWORD: test + MYSQL_ROOT_PASSWORD: test + MYSQL_ALLOW_EMPTY_PASSWORD: 1 + volumes: + #- /Volumes/HDD_MINI/dev_docker/docker_lamp_5_6_39/scriptsdb:/docker-entrypoint-initdb.d + - /Volumes/HDD_MINI/dev_docker/docker_laravel/databases/blog:/var/lib/mysql + user: mysql + networks: + - laravel-blog-stack + php-blog: + depends_on: + - db + build: + context: ./docker-file-php + dockerfile: Dockerfile + container_name: laravel-blog-php + volumes: + - "/Volumes/HDD_MINI/dev_docker/docker_laravel/webs/blog/:/var/www/html" + #ports: + # - 9080:80 + # - 9081:443 + networks: + - laravel-blog-stack + nginx-blog: + build: + context: ./docker-file-nginx + dockerfile: Dockerfile + container_name: laravel-blog-nginx + ports: + - 9083:80 + depends_on: + - php-blog + volumes: + - "/Volumes/HDD_MINI/dev_docker/docker_laravel/webs/blog/:/var/www/html" + networks: + - laravel-blog-stack + phpmyadmin: + depends_on: + - db + image: phpmyadmin:apache + container_name: laravel-blog-myadmin + ports: + - 9082:80 + environment: + - PMA_HOST=db + - PMA_PORT=3306 + - UPLOAD_LIMIT=500M + - MEMORY_LIMIT=5000M + - MAX_EXECUTION_TIME=0 + networks: + - laravel-blog-stack +networks: + laravel-blog-stack: + driver: bridge \ No newline at end of file diff --git a/compose-env-laravel-8/docker-file-nginx/Dockerfile b/compose-env-laravel-8/docker-file-nginx/Dockerfile new file mode 100755 index 0000000..a29c646 --- /dev/null +++ b/compose-env-laravel-8/docker-file-nginx/Dockerfile @@ -0,0 +1,4 @@ +FROM nginx +RUN apt update +RUN apt install -y vim +COPY conf/default.conf /etc/nginx/conf.d \ No newline at end of file diff --git a/compose-env-laravel-8/docker-file-nginx/conf/default.conf b/compose-env-laravel-8/docker-file-nginx/conf/default.conf new file mode 100755 index 0000000..a89d4b5 --- /dev/null +++ b/compose-env-laravel-8/docker-file-nginx/conf/default.conf @@ -0,0 +1,31 @@ +server { + listen 80 default_server; + + server_name localhost; + root /var/www/html/public; + + error_log /var/log/nginx/error.log; + access_log /var/log/nginx/access.log; + + index index.html index.php; + + client_max_body_size 5M; + + location / { + try_files $uri $uri /index.php$is_args$args; + } + + location ~ ^/.+\.php(/|$) { + fastcgi_split_path_info ^(.+?\.php)(/.*)$; + if (!-f $document_root$fastcgi_script_name) { + return 404; + } + include fastcgi_params; + fastcgi_pass php-blog:9000; + fastcgi_index index.php; + fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name; + fastcgi_param DOCUMENT_ROOT $realpath_root; + fastcgi_param REALPATHTEST $realpath_root; + internal; + } +} \ No newline at end of file diff --git a/compose-env-laravel-8/docker-file-php/90-xdebug.ini b/compose-env-laravel-8/docker-file-php/90-xdebug.ini new file mode 100755 index 0000000..9193789 --- /dev/null +++ b/compose-env-laravel-8/docker-file-php/90-xdebug.ini @@ -0,0 +1,5 @@ +zend_extension=xdebug.so +xdebug.mode=develop,debug +xdebug.start_with_request=yes +xdebug.discover_client_host=0 +xdebug.client_host=host.docker.internal \ No newline at end of file diff --git a/compose-env-laravel-8/docker-file-php/Dockerfile b/compose-env-laravel-8/docker-file-php/Dockerfile new file mode 100755 index 0000000..f31b676 --- /dev/null +++ b/compose-env-laravel-8/docker-file-php/Dockerfile @@ -0,0 +1,19 @@ +FROM php:8.3.1-fpm-alpine + +#Referencia solucion https://github.com/caohoangtu/docker-laravel/tree/master +RUN apk add --update --no-cache autoconf g++ make openssl-dev +RUN apk add libpng-dev +RUN apk add libzip-dev +RUN apk add --update linux-headers + +RUN docker-php-ext-install gd +RUN docker-php-ext-install zip +RUN docker-php-ext-install bcmath +RUN docker-php-ext-install sockets +RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer + +RUN docker-php-ext-install mysqli pdo pdo_mysql && docker-php-ext-enable pdo_mysql + +#install xdebug +RUN pecl install xdebug +COPY 90-xdebug.ini "${PHP_INI_DIR}"/conf.d \ No newline at end of file diff --git a/compose-env-laravel/docker-compose.yml b/compose-env-laravel/docker-compose.yml new file mode 100755 index 0000000..0b5c0cc --- /dev/null +++ b/compose-env-laravel/docker-compose.yml @@ -0,0 +1,66 @@ +version: "3" + +services: + db: + #image: mysql:latest + image: mariadb:latest + container_name: laravel-db + environment: + MYSQL_DATABASE: laravel + MYSQL_USER: test + MYSQL_PASSWORD: test + MYSQL_ROOT_PASSWORD: test + MYSQL_ALLOW_EMPTY_PASSWORD: 1 + volumes: + #- /Volumes/HDD_MINI/dev_docker/docker_lamp_5_6_39/scriptsdb:/docker-entrypoint-initdb.d + - /Volumes/HDD_MINI/dev_docker/docker_laravel/databases/test-docker-app:/var/lib/mysql + user: mysql + ports: + - 9081:3306 + networks: + - laravel-stack + php-test-docker-app: + depends_on: + - db + build: + context: ./docker-file-php + dockerfile: Dockerfile + container_name: laravel-php + volumes: + - "/Volumes/HDD_MINI/dev_docker/docker_laravel/webs/test-docker-app/:/var/www/html" + #ports: + # - 9080:80 + # - 9081:443 + networks: + - laravel-stack + nginx-test-docker-app: + build: + context: ./docker-file-nginx + dockerfile: Dockerfile + container_name: laravel-nginx + ports: + - 9083:80 + depends_on: + - php-test-docker-app + volumes: + - "/Volumes/HDD_MINI/dev_docker/docker_laravel/webs/test-docker-app/:/var/www/html" + networks: + - laravel-stack + phpmyadmin: + depends_on: + - db + image: phpmyadmin:apache + container_name: laravel-myadmin + ports: + - 9082:80 + environment: + - PMA_HOST=db + - PMA_PORT=3306 + - UPLOAD_LIMIT=500M + - MEMORY_LIMIT=5000M + - MAX_EXECUTION_TIME=0 + networks: + - laravel-stack +networks: + laravel-stack: + driver: bridge \ No newline at end of file diff --git a/compose-env-laravel/docker-file-nginx/Dockerfile b/compose-env-laravel/docker-file-nginx/Dockerfile new file mode 100755 index 0000000..a29c646 --- /dev/null +++ b/compose-env-laravel/docker-file-nginx/Dockerfile @@ -0,0 +1,4 @@ +FROM nginx +RUN apt update +RUN apt install -y vim +COPY conf/default.conf /etc/nginx/conf.d \ No newline at end of file diff --git a/compose-env-laravel/docker-file-nginx/conf/default.conf b/compose-env-laravel/docker-file-nginx/conf/default.conf new file mode 100755 index 0000000..0c2270c --- /dev/null +++ b/compose-env-laravel/docker-file-nginx/conf/default.conf @@ -0,0 +1,31 @@ +server { + listen 80 default_server; + + server_name localhost; + root /var/www/html/public; + + error_log /var/log/nginx/error.log; + access_log /var/log/nginx/access.log; + + index index.html index.php; + + client_max_body_size 5M; + + location / { + try_files $uri $uri /index.php$is_args$args; + } + + location ~ ^/.+\.php(/|$) { + fastcgi_split_path_info ^(.+?\.php)(/.*)$; + if (!-f $document_root$fastcgi_script_name) { + return 404; + } + include fastcgi_params; + fastcgi_pass php-test-docker-app:9000; + fastcgi_index index.php; + fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name; + fastcgi_param DOCUMENT_ROOT $realpath_root; + fastcgi_param REALPATHTEST $realpath_root; + internal; + } +} \ No newline at end of file diff --git a/compose-env-laravel/docker-file-php/90-xdebug.ini b/compose-env-laravel/docker-file-php/90-xdebug.ini new file mode 100755 index 0000000..9193789 --- /dev/null +++ b/compose-env-laravel/docker-file-php/90-xdebug.ini @@ -0,0 +1,5 @@ +zend_extension=xdebug.so +xdebug.mode=develop,debug +xdebug.start_with_request=yes +xdebug.discover_client_host=0 +xdebug.client_host=host.docker.internal \ No newline at end of file diff --git a/compose-env-laravel/docker-file-php/Dockerfile b/compose-env-laravel/docker-file-php/Dockerfile new file mode 100755 index 0000000..f31b676 --- /dev/null +++ b/compose-env-laravel/docker-file-php/Dockerfile @@ -0,0 +1,19 @@ +FROM php:8.3.1-fpm-alpine + +#Referencia solucion https://github.com/caohoangtu/docker-laravel/tree/master +RUN apk add --update --no-cache autoconf g++ make openssl-dev +RUN apk add libpng-dev +RUN apk add libzip-dev +RUN apk add --update linux-headers + +RUN docker-php-ext-install gd +RUN docker-php-ext-install zip +RUN docker-php-ext-install bcmath +RUN docker-php-ext-install sockets +RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer + +RUN docker-php-ext-install mysqli pdo pdo_mysql && docker-php-ext-enable pdo_mysql + +#install xdebug +RUN pecl install xdebug +COPY 90-xdebug.ini "${PHP_INI_DIR}"/conf.d \ No newline at end of file diff --git a/compose-env-mern/docker-compose.yml b/compose-env-mern/docker-compose.yml new file mode 100755 index 0000000..747cad8 --- /dev/null +++ b/compose-env-mern/docker-compose.yml @@ -0,0 +1,47 @@ +version: "3" + +services: + app-db: + image: mongodb/mongodb-community-server:4.4.13-ubi8 + #image: mongodb/mongodb-community-server:4.4.6-ubi8 + #image: mongodb/mongodb-community-server:latest + #image: mongo:7.0.5-rc0-jammy + container_name: api-db + environment: + MONGODB_INITDB_ROOT_USERNAME: root + MONGODB_INITDB_ROOT_PASSWORD: test + MONGO_INITDB_DATABASE: dbAppExpenses + volumes: + - /Volumes/HDD_MINI/dev_docker/app-custom-expenses/db/mongo-init.js:/docker-entrypoint-initdb.d/*.js:ro + - /Volumes/HDD_MINI/dev_docker/app-custom-expenses/db/db:/data/db + - /Volumes/HDD_MINI/dev_docker/app-custom-expenses/db/configdb/:/data/configdb + - /Volumes/HDD_MINI/dev_docker/app-custom-expenses/db/log/:/var/log/mongodb + ports: + - 38082:27017 + networks: + - app-stack + app-be-api: + depends_on: + - app-db + image: node:21-alpine3.18 + container_name: api-be + ports: + - 38081:8080 + working_dir: /home/node/app + volumes: + - /Volumes/HDD_MINI/dev_docker/app-custom-expenses/be/be-api-expenses:/home/node/app + - /Volumes/HDD_MINI/dev_docker/app-custom-expenses/be/be-api-expenses/node_modules:/home/node/app/node_modules + environment: + - NODE_ENV=production + #Este comando es para inicializar la app, esta es la mas comun? + #si es que estoy usando nodemon - typescript - ts.node + command: npm start + #Este comando es para inicializar la app con live reload (nodemon) + #si es que no trabajo con typescript + #command: npm run dev + networks: + - app-stack + # app-fe: +networks: + app-stack: + driver: bridge \ No newline at end of file diff --git a/compose-env-mongodb/docker-compose.yml b/compose-env-mongodb/docker-compose.yml new file mode 100755 index 0000000..b35b369 --- /dev/null +++ b/compose-env-mongodb/docker-compose.yml @@ -0,0 +1,36 @@ +services: + db: + image: mongodb/mongodb-community-server:7.0.7-ubi9 + container_name: java-mongodb + environment: + MONGODB_INITDB_ROOT_USERNAME: root + MONGODB_INITDB_ROOT_PASSWORD: test + MONGO_INITDB_DATABASE: db-expenses + volumes: + - /Volumes/HDD_MINI/dev_docker/docker_mongodb/db-expenses/mongo-init.js:/docker-entrypoint-initdb.d/*.js:ro + - /Volumes/HDD_MINI/dev_docker/docker_mongodb/db-expenses/db:/data/db + - /Volumes/HDD_MINI/dev_docker/docker_mongodb/db-expenses/configdb/:/data/configdb + - /Volumes/HDD_MINI/dev_docker/docker_mongodb/db-expenses/log/:/var/log/mongodb + ports: + - 9009:27017 + networks: + - expenses-stack + db-test: + image: mongodb/mongodb-community-server:7.0.7-ubi9 + container_name: java-mongodb-test + environment: + MONGODB_INITDB_ROOT_USERNAME: root + MONGODB_INITDB_ROOT_PASSWORD: test + MONGO_INITDB_DATABASE: db-expenses-test + volumes: + - /Volumes/HDD_MINI/dev_docker/docker_mongodb/db-expenses-test/mongo-init.js:/docker-entrypoint-initdb.d/*.js:ro + - /Volumes/HDD_MINI/dev_docker/docker_mongodb/db-expenses-test/db:/data/db + - /Volumes/HDD_MINI/dev_docker/docker_mongodb/db-expenses-test/configdb/:/data/configdb + - /Volumes/HDD_MINI/dev_docker/docker_mongodb/db-expenses-test/log/:/var/log/mongodb + ports: + - 9008:27017 + networks: + - expenses-stack +networks: + expenses-stack: + driver: bridge \ No newline at end of file diff --git a/compose-env-mysql/docker-compose.yml b/compose-env-mysql/docker-compose.yml new file mode 100755 index 0000000..a872d6a --- /dev/null +++ b/compose-env-mysql/docker-compose.yml @@ -0,0 +1,20 @@ +version: "3" + +services: + db: + image: bitnami/mysql:8.0 + container_name: java-mysql + environment: + MYSQL_USER: test + MYSQL_PASSWORD: test + MYSQL_ROOT_PASSWORD: test + MYSQL_ALLOW_EMPTY_PASSWORD: 1 + volumes: + - /Volumes/HDD_MINI/dev_docker/docker_mysql/mysql_alura:/bitnami/mysql/data + ports: + - 9006:3306 + networks: + - java-stack +networks: + java-stack: + driver: bridge \ No newline at end of file diff --git a/compose-env-postgresql/docker-compose.yml b/compose-env-postgresql/docker-compose.yml new file mode 100755 index 0000000..4ff36a6 --- /dev/null +++ b/compose-env-postgresql/docker-compose.yml @@ -0,0 +1,22 @@ +version: "3" + +services: + db: + #image: postgres:13.14-bullseye + image: bitnami/postgresql:16.2.0 + container_name: java-postgres + environment: + POSTGRES_USER: postgres + POSTGRES_PASSWORD: postgres + #PGDATA: /var/lib/postgresql/data/pgdata + volumes: + #- /Volumes/HDD_MINI/dev_docker/docker_postgresql/java_postgresql:/var/lib/postgresql/data + #- /Volumes/HDD_MINI/dev_docker/docker_postgresql/java_postgresql:/var/lib/postgresql + - /Volumes/HDD_MINI/dev_docker/docker_postgresql/java_postgresql:/bitnami/postgresql + ports: + - 5433:5432 + networks: + - java-stack +networks: + java-stack: + driver: bridge \ No newline at end of file diff --git a/compose-env-react-hooks-mern/docker-compose.yml b/compose-env-react-hooks-mern/docker-compose.yml new file mode 100755 index 0000000..0e7ae1c --- /dev/null +++ b/compose-env-react-hooks-mern/docker-compose.yml @@ -0,0 +1,38 @@ +version: "3" + +services: + app-intro-js: + #depends_on: + # - app-db + image: node:21-alpine3.18 + container_name: intro-js-react-hooks-mern + ports: + - 38081:8080 + - 38083:3000 + working_dir: /home/node/app + volumes: + - /Volumes/HDD_MINI/dev_docker/docker_react_hooks_mern/02-intro-javascript:/home/node/app + - /Volumes/HDD_MINI/dev_docker/docker_react_hooks_mern/02-intro-javascript/node_modules:/home/node/app/node_modules + environment: + - NODE_ENV=production + - WDS_SOCKET_PORT=0 + #Este comando es para inicializar la app, esta es la mas comun? + #si es que estoy usando nodemon - typescript - ts.node + command: npm start + #Este comando es para inicializar la app con live reload (nodemon) + #si es que no trabajo con typescript + #command: npm run dev + networks: + - react-stack + app-http: + image: httpd:latest + container_name: fe-react-hooks-mern + volumes: + - "/Volumes/HDD_MINI/dev_docker/docker_react_hooks_mern/01-intro-react/:/usr/local/apache2/htdocs/" + ports: + - 38082:80 + networks: + - react-stack +networks: + react-stack: + driver: bridge \ No newline at end of file diff --git a/compose-env-siad/Dockerfile b/compose-env-siad/Dockerfile new file mode 100755 index 0000000..ab77d27 --- /dev/null +++ b/compose-env-siad/Dockerfile @@ -0,0 +1,19 @@ +FROM php:5.6.39-apache + +#Referencia solucion https://stackoverflow.com/questions/76094428/debian-stretch-repositories-404-not-found +RUN sed -i -e 's/deb.debian.org/archive.debian.org/g' \ + -e 's|security.debian.org|archive.debian.org/|g' \ + -e '/stretch-updates/d' /etc/apt/sources.list + +RUN apt-get update && apt-get install -y libmcrypt-dev \ + && docker-php-ext-install mcrypt + +#Ejecuto comando para instalar certificado ssl +#Referencia solucion https://github.com/nezhar/php-docker-ssl/tree/master +RUN openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/ssl-cert-snakeoil.key -out /etc/ssl/certs/ssl-cert-snakeoil.pem -subj "/C=AT/ST=Vienna/L=Vienna/O=Security/OU=Development/CN=example.com" + +RUN a2enmod rewrite + +#Ejecuta comando referente a la instalacion de ssl +RUN a2ensite default-ssl +RUN a2enmod ssl \ No newline at end of file diff --git a/compose-env-siad/docker-compose.yml b/compose-env-siad/docker-compose.yml new file mode 100755 index 0000000..1d8e799 --- /dev/null +++ b/compose-env-siad/docker-compose.yml @@ -0,0 +1,49 @@ +version: "3" + +services: + db: + image: mariadb:5.5.60 + environment: + MYSQL_DATABASE: test_docker + MYSQL_USER: test + MYSQL_PASSWORD: test + MYSQL_ROOT_PASSWORD: test + MYSQL_ALLOW_EMPTY_PASSWORD: 1 + volumes: + #- /Volumes/HDD_MINI/dev_docker/docker_lamp_5_6_39/scriptsdb:/docker-entrypoint-initdb.d + - /Volumes/HDD_MINI/dev_docker/docker_lamp_5_6_39/databases:/var/lib/mysql + user: mysql + networks: + - siad-stack + website: + depends_on: + - db + #image: php:5.6.39-apache-jessie + #image: php:5.6.39-apache + build: + context: . + dockerfile: Dockerfile + volumes: + - "/Volumes/HDD_MINI/dev_docker/docker_lamp_5_6_39/webs/:/var/www/html" + ports: + - 9080:80 + - 9443:443 + networks: + - siad-stack + phpmyadmin: + depends_on: + - db + image: phpmyadmin:apache + ports: + - 9280:80 + environment: + - PMA_HOST=db + - PMA_PORT=3306 + - UPLOAD_LIMIT=500M + - MEMORY_LIMIT=5000M + - MAX_EXECUTION_TIME=0 + networks: + - siad-stack +networks: + siad-stack: + driver: bridge \ No newline at end of file diff --git a/compose-simple-express/.dockerignore b/compose-simple-express/.dockerignore new file mode 100644 index 0000000..0c62783 --- /dev/null +++ b/compose-simple-express/.dockerignore @@ -0,0 +1,5 @@ +node_modules +npm-debug.log +.git +.gitignore +.env \ No newline at end of file diff --git a/compose-simple-express/Dockerfile b/compose-simple-express/Dockerfile new file mode 100644 index 0000000..85cb5ad --- /dev/null +++ b/compose-simple-express/Dockerfile @@ -0,0 +1,6 @@ +FROM node:22.11.0-alpine3.20 +WORKDIR /app +COPY /Volumes/SSD_240/desarrollos/dev-random/simple-express /app +RUN npm install +EXPOSE 3000 +CMD ["npm", "start"] \ No newline at end of file diff --git a/tesloshop-backend-main/.env.template b/tesloshop-backend-main/.env.template new file mode 100644 index 0000000..3013a5c --- /dev/null +++ b/tesloshop-backend-main/.env.template @@ -0,0 +1,15 @@ +APP_VERSION=0.0.1 + + +STAGE=prod + +DB_PASSWORD=MySecr3tPassWord@as2 +DB_NAME=TesloDB +DB_HOST=TesloDB +DB_PORT=5432 +DB_USERNAME=postgres + +PORT=3000 +HOST_API=http://localhost:3000/api + +JWT_SECRET=Est3EsMISE3Dsecreto32s \ No newline at end of file diff --git a/tesloshop-backend-main/.gitignore b/tesloshop-backend-main/.gitignore new file mode 100644 index 0000000..4c49bd7 --- /dev/null +++ b/tesloshop-backend-main/.gitignore @@ -0,0 +1 @@ +.env diff --git a/tesloshop-backend-main/README.md b/tesloshop-backend-main/README.md new file mode 100644 index 0000000..22630a4 --- /dev/null +++ b/tesloshop-backend-main/README.md @@ -0,0 +1,27 @@ +# Nest - TesloShop Backend + +## Development + +1. Tener corriendo el servicio de Docker (Docker Desktop o Docker Daemon) +2. Clonar el archivo **.env.template** y renombrar la copia a **.env** +3. Levantar los servicios con el comando + +``` +docker compose up -d +``` + +4. Llenar la base de datos con data temporal: + + http://localhost:3000/api/seed + +5. Documentación de los endpoints disponibles: + + http://localhost:3000/api + +# Extra + +Si desean saber más sobre docker y cómo se construyó esta imagen, esto es parte de mi curso de Nest y Docker: + +[Cursos sobre Docker](https://fernando-herrera.com/courses?q=docker) + +[Imagen en DockerHub](https://hub.docker.com/repository/docker/klerith/flutter-backend-teslo-shop/general) diff --git a/tesloshop-backend-main/docker-compose.yml b/tesloshop-backend-main/docker-compose.yml new file mode 100644 index 0000000..9833d3e --- /dev/null +++ b/tesloshop-backend-main/docker-compose.yml @@ -0,0 +1,39 @@ +version: '3' + +services: + + app: + container_name: nest-app + restart: always + image: klerith/flutter-backend-teslo-shop:latest + depends_on: + - db + ports: + - ${PORT}:${PORT} + environment: + APP_VERSION: ${APP_VERSION} + STAGE: ${STAGE} + DB_PASSWORD: ${DB_PASSWORD} + DB_NAME: ${DB_NAME} + DB_HOST: ${DB_HOST} + DB_PORT: ${DB_PORT} + DB_USERNAME: ${DB_USERNAME} + PORT: ${PORT} + HOST_API: ${HOST_API} + JWT_SECRET: ${JWT_SECRET} + + db: + image: postgres:16.1 + restart: always + ports: + - "5432:5432" + environment: + POSTGRES_PASSWORD: ${DB_PASSWORD} + POSTGRES_DB: ${DB_NAME} + container_name: ${DB_NAME} + volumes: + - /Volumes/HDD_MINI/dev_docker/docker_postgresql/tesloshop_db:/var/lib/postgresql/data + +volumes: + postgres-db: + external: false