-
-
Save taljacob2/02ee5a866ad0a0ed50126c30780bea58 to your computer and use it in GitHub Desktop.
Docker Springboot + SQL
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# DB (mysql) | |
MYSQLDB_USER=root | |
MYSQLDB_ROOT_PASSWORD=123456 # For some reason cannot be set to: "mysql" | |
MYSQLDB_DATABASE=app_db | |
MYSQLDB_LOCAL_PORT=3307 | |
MYSQLDB_DOCKER_PORT=3306 | |
# DB UI (adminer) | |
ADMINER_DOCKER_PORT=8080 | |
ADMINER_LOCAL_PORT=8061 | |
# Spring (app) | |
SPRING_DOCKER_PORT=8070 # Must be the same as `SPRING_DOCKER_PORT` in `Dockerfile` file | |
SPRING_LOCAL_PORT=6868 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#---------------------------------------- | |
# Main configurations: | |
#-------------------- | |
# DB Settings | |
spring.datasource.url=jdbc:mysql://localhost:3307/app_db?createDatabaseIfNotExist=true | |
spring.datasource.username=root | |
spring.datasource.password=123456 | |
#------------ | |
# Hibernate Dialect: | |
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL8Dialect | |
#------------ | |
# DDL: | |
spring.jpa.hibernate.ddl-auto=update | |
#------------ | |
# Show sql statement | |
logging.level.org.hibernate.SQL=debug | |
# Show sql values | |
logging.level.org.hibernate.type.descriptor.sql=trace | |
#------------ | |
# Server port: | |
server.port=8070 | |
#-------------------------------------------- | |
#------------ | |
#------------ | |
# OR | |
#------------ | |
#------------ | |
##-------------------------------------------- | |
## Heroku configurations: | |
##----------------------- | |
## DB Settings | |
#spring.datasource.driverClassName=org.postgresql.Driver | |
#spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.PostgreSQL95Dialect | |
#spring.jpa.properties.hibernate.globally_quoted_identifiers=true | |
#spring.jpa.properties.hibernate.jdbc.lob.non_contextual_creation=true | |
# | |
## Logging (THIS IS OPTIONAL) | |
#logging.level.org.hibernate.SQL=debug | |
#logging.level.org.hibernate.type.descriptor.sql=trace | |
# | |
## DDL | |
#spring.jpa.hibernate.ddl-auto=update | |
#spring.jpa.generate-ddl=true | |
# | |
## Port | |
#server.port=${PORT} | |
# | |
##----------------------- | |
## NOTES: | |
## | |
## Heroku automatically *creates and injects* the env-variables: | |
## `SPRING_DATASOURCE_URL` | |
## `SPRING_DATASOURCE_USERNAME` | |
## `SPRING_DATASOURCE_PASSWORD` | |
## | |
## Heroku automatically *creates* the env-variable: | |
## `${PORT}` | |
##-------------------------------------------- |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
version: "3.8" | |
services: | |
db: # This is the DEFAULT `Server` name in `adminer`. DO NOT CHANGE THIS NAME. | |
image: mysql | |
restart: always | |
env_file: ./.env | |
environment: | |
- MYSQL_ROOT_PASSWORD=$MYSQLDB_ROOT_PASSWORD | |
- MYSQL_DATABASE=$MYSQLDB_DATABASE | |
ports: | |
- $MYSQLDB_LOCAL_PORT:$MYSQLDB_DOCKER_PORT | |
volumes: | |
- db_data:/var/lib/mysql # CONST Directory names for InnoDB. DO NOT CHANGE THIS NAME. | |
adminer: | |
image: adminer | |
depends_on: | |
- db # Must -> Same as the `db` service name, as declared above. | |
restart: always | |
env_file: ./.env | |
ports: | |
- $ADMINER_LOCAL_PORT:$ADMINER_DOCKER_PORT | |
# app: | |
# depends_on: | |
# - db # Must -> Same as the `db` service name, as declared above. | |
# build: . | |
# restart: always | |
# env_file: ./.env | |
# ports: | |
# - $SPRING_LOCAL_PORT:$SPRING_DOCKER_PORT | |
# environment: # Note: "jdbc:mysql://`db`... <- is the `Server` name in `adminer`. Same as the `db` service name, as declared above. | |
# SPRING_APPLICATION_JSON: '{ | |
# "spring.datasource.url" : "jdbc:mysql://db:$MYSQLDB_DOCKER_PORT/$MYSQLDB_DATABASE?useSSL=false&createDatabaseIfNotExist=true&serverTimezone=UTC&useLegacyDatetimeCode=false&allowPublicKeyRetrieval=true", | |
# "spring.datasource.username" : "$MYSQLDB_USER", | |
# "spring.datasource.password" : "$MYSQLDB_ROOT_PASSWORD", | |
# "spring.jpa.properties.hibernate.dialect" : "org.hibernate.dialect.MySQL8Dialect", | |
# "spring.jpa.hibernate.ddl-auto" : "update", | |
# "server.port" : "$SPRING_DOCKER_PORT", | |
# "spring.datasource.driver-class-name" : "com.mysql.cj.jdbc.Driver" | |
# }' | |
# stdin_open: true | |
# tty: true | |
volumes: | |
db_data: {} | |
#------------------------------------ | |
# If you want to rename this network: | |
#networks: | |
# default: | |
# name: YOUR-NETWORK-NAME |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# ----- `FROM` (this section MUST be first) ----- | |
FROM openjdk:8-jre-alpine | |
# ----- `FROM` (this section MUST be first) ----- | |
# ----- Variables ----- | |
# Port (MUST be the same as `SPRING_DOCKER_PORT` in `.env` file) | |
ENV SPRING_DOCKER_PORT=8070 | |
# Name | |
ARG APP_NAME=web.jar | |
ENV APP_PATH=app-dir/$APP_NAME | |
# ----- Variables ----- | |
# ----- Build ----- | |
EXPOSE $SPRING_DOCKER_PORT | |
ADD build/libs/$APP_NAME $APP_PATH | |
ENTRYPOINT java -jar $APP_PATH | |
# ----- Build ----- |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment