Current Mac Files

This commit is contained in:
2024-11-26 14:37:36 -03:00
parent 6df5ccdf73
commit cfbca92b59
31 changed files with 1023 additions and 0 deletions

View File

@@ -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

View File

@@ -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

View File

@@ -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:

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -0,0 +1,4 @@
FROM nginx
RUN apt update
RUN apt install -y vim
COPY conf/default.conf /etc/nginx/conf.d

View File

@@ -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;
}
}

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -0,0 +1,4 @@
FROM nginx
RUN apt update
RUN apt install -y vim
COPY conf/default.conf /etc/nginx/conf.d

View File

@@ -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;
}
}

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

19
compose-env-siad/Dockerfile Executable file
View File

@@ -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

View File

@@ -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

View File

@@ -0,0 +1,5 @@
node_modules
npm-debug.log
.git
.gitignore
.env

View File

@@ -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"]

View File

@@ -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

1
tesloshop-backend-main/.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
.env

View File

@@ -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)

View File

@@ -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