diff --git a/.env.example b/.env.example new file mode 100644 index 00000000..5146b01c --- /dev/null +++ b/.env.example @@ -0,0 +1,5 @@ +POSTGRES_DB="" +POSTGRES_USER="" +POSTGRES_PASSWORD="" +PGADMIN_EMAIL="" +PGADMIN_PASSWORD="" diff --git a/.gitignore b/.gitignore index 38701aa0..7dd59c76 100644 --- a/.gitignore +++ b/.gitignore @@ -7,3 +7,4 @@ # Working directory src/* +.env diff --git a/README.md b/README.md index b4007e3e..7ba9e7e7 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # Laravel using PostgreSQL in Docker

- docker+laravel + docker+laravel

## Introduction @@ -17,57 +17,36 @@ Build a simple laravel application development environment with docker compose. ## Installation 1. Git clone & move to working directory -2. Settings your credentials docker compose using [Docker Secrets](https://docs.docker.com/engine/swarm/secrets/) - -- Create credentials for DB Name - - ```bash - $ echo "" | docker secret create app_db_name - - ``` -- Create credentials for DB User - - ```bash - $ echo "" | docker secret create app_db_user - - ``` -- Create credentials for DB Password - - ```bash - $ echo "" | docker secret create app_db_password - - ``` -### *Optional credentials* -If you want to use pgAdmin management add this credentials: - -- Create credentials for pgAdmin Password - - ```bash - $ echo "" | docker secret create app_pgadmin_password - - ``` - -**Uncomment** in top level secret for pgAdmin in file docker-compose.yml to: -```bash - app_pgadmin_password: - external: true -``` - -1. Execute the following command for create application +2. Settings your credentials, copy `.env.example` to `.env` +3. Execute the following command for create application ```bash $ make create-project ``` -4. set src/.env variable : +4. Next, set environment DB for app laravel in `src/.env` variable : ``` DB_CONNECTION=pgsql DB_HOST=postgres DB_PORT=5432 -DB_DATABASE= -DB_USERNAME= -DB_PASSWORD= +DB_DATABASE= // same in root .env variable POSTGRES_DB +DB_USERNAME= // same in root .env variable POSTGRES_USER +DB_PASSWORD= // same in root .env variable POSTGRES_PASSWORD ``` 5. show application in [http://localhost:85](http://localhost:85) -6. show adminer in [http://localhost:8080](http://localhost:8080) -7. list execute command in [Makefile](Makefile). + +app+laravel + +1. show adminer in [http://localhost:8080](http://localhost:8080) + +adminer + +7. show pgadmin in [http://localhost:5050](http://localhost:5050) + +pgadmin + +8. list execute command in [Makefile](Makefile). ## Container details : - ``app`` use image: @@ -80,6 +59,7 @@ DB_PASSWORD= - [postgres](https://hub.docker.com/_/postgres):15 - ``adminer`` use image: - [adminer](https://hub.docker.com/_/adminer):latest + *Optional* - ``pgadmin`` use image: - [pgadmin](https://hub.docker.com/_/pgadmin):latest diff --git a/docker-compose.yml b/docker-compose.yml index a88c2498..350c3b89 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -24,13 +24,9 @@ services: volumes: - ./docker/postgres/data:/var/lib/postgres/data environment: - - POSTGRES_DB_FILE=/run/secrets/app_db_name - - POSTGRES_USER_FILE=/run/secrets/app_db_user - - POSTGRES_PASSWORD_FILE=/run/secrets/app_db_password - secrets: - - app_db_name - - app_db_user - - app_db_password + - POSTGRES_DB=${POSTGRES_DB} + - POSTGRES_USER=${POSTGRES_USER} + - POSTGRES_PASSWORD=${POSTGRES_PASSWORD} ports: - "5432:5432" networks: @@ -41,8 +37,7 @@ services: image: nginx:stable-alpine restart: always ports: - - "81:80" - - "5173:80" + - "85:80" volumes: - ./src:/var/www/html - ./docker/nginx/default.conf:/etc/nginx/conf.d/default.conf @@ -54,10 +49,8 @@ services: image: dpage/pgadmin4 container_name: aselole-pgAdmin environment: - - PGADMIN_DEFAULT_EMAIL=agung@gmail.com - - PGADMIN_DEFAULT_PASSWORD_FILE=/run/secrets/app_pgadmin_password - secrets: - - app_pgadmin_password + - PGADMIN_DEFAULT_EMAIL=${PGADMIN_EMAIL} + - PGADMIN_DEFAULT_PASSWORD=${PGADMIN_PASSWORD} ports: - "5050:80" depends_on: @@ -76,13 +69,3 @@ services: - postgres networks: - aselole - -secrets: - app_db_name: - external: true - app_db_user: - external: true - app_db_password: - external: true - app_pgadmin_password: - external: true diff --git a/docker/image/adminer.png b/docker/image/adminer.png new file mode 100644 index 00000000..f6ef2f80 Binary files /dev/null and b/docker/image/adminer.png differ diff --git a/docker/image/app.png b/docker/image/app.png new file mode 100644 index 00000000..1b43e882 Binary files /dev/null and b/docker/image/app.png differ diff --git a/docker/image/pgadmin.png b/docker/image/pgadmin.png new file mode 100644 index 00000000..eb48c7d5 Binary files /dev/null and b/docker/image/pgadmin.png differ diff --git a/secret.sh b/secret.sh deleted file mode 100755 index 179ac067..00000000 --- a/secret.sh +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/bash - -# Create Docker secrets for the database configuration -echo "Creating Docker secrets for the database configuration..." - -# Create the secret for the database name -echo "aselole_db" | docker secret create app_db_name - -echo "Secret for database name (aselole_db) created." - -# Create the secret for the database user -echo "aselole" | docker secret create app_db_user - -echo "Secret for database user (aselole) created." - -# Create the secret for the database password -echo "password!" | docker secret create app_db_password - -echo "Secret for database password created." - -# Create the secret for the database password -echo "password!" | docker secret create app_pgadmin_password - -echo "Secret for pgAdmin password created." - -# Finished creating Docker secrets -echo "Docker secrets for the database configuration have been set up."