Запустите приложение Java (Spring Boot + MySQL) с помощью Docker Compose.JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Запустите приложение Java (Spring Boot + MySQL) с помощью Docker Compose.

Сообщение Anonymous »

Я пытаюсь запустить приложение на своем локальном компьютере с помощью Docker. Я также хочу запустить приложение на удаленном сервере. Без Docker в Intelij Idea все работает нормально.
На локальной машине установил Docker. Создал Dockerfile и docker-compose.yml в корневой папке проекта. Некоторые ошибки, которые я допустил в этих файлах. Я думаю, что связь между базой данных и моим приложением, насколько я понимаю, не работает.
Возможно, что-то не так с MYSQL_ROOT_PASSWORD, потому что я действительно не знаю, какой пароль от MYSQL_ROOT_PASSWORD. Я знаю только имя пользователя и пароль. Я запускаю MySQL с помощью MySQLWorkbanch, создаю здесь группу с именем "my_connection", есть пользователь с именем "bestuser" и логин "bestuser".
[введите описание изображения здесь][1]
Это моя структура проекта
[введите описание изображения здесь][2]
Я попробовал объединить порты, 8080:8080, 8081:8080, 3306:3306, 3307:3306.. Но ничего.
Образ MySQL работает хорошо, но в изображении приложения много ошибок.
[введите описание изображения здесь][3]
application.properties

Код: Выделить всё

spring.datasource.url=jdbc:mysql://localhost:3306/crm?useSSL=false
spring.datasource.username=bestuser123
spring.datasource.password=bestuser123
#spring.datasource.password=######
spring.sql.init.mode=always
#spring.datasource.initialization-mode=always
#server.port=8080

#spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
#spring.jms.listener.acknowledge-mode=auto

info.name=CRM system. Accounting for sales, merchandise, payroll
info.description=CRM system. Accounting for sales, merchandise, payroll

spring.view.prefix:/WEB-INF/
spring.view.suffix:.jsp
spring.view.view-names:views/*
#spring.thymeleaf.prefix=/webapp/WEB-INF/
#spring.thymeleaf.view-names:views/*

#management.endpoints.web.exposure.include=*

#spring.mvc.view.prefix: /WEB-INF/views/
#spring.mvc.view.suffix: .jsp
#spring.thymeleaf.suffix=.html
#spring.thymeleaf.prefix=classpath:/templates/

# ==============================================================
# = Keep the connection alive if idle for a long time (needed in production)
# ==============================================================
spring.datasource.testWhileIdle = true
spring.datasource.validationQuery = SELECT 1

# ==============================================================
# = Show or not log for each sql query
# ==============================================================
#spring.jpa.show-sql = true

# ==============================================================
# = Hibernate ddl auto (create, create-drop, update)
# ==============================================================
spring.jpa.hibernate.ddl-auto = update

# ==============================================================
# = The SQL dialect makes Hibernate generate better SQL for the chosen database
# ==============================================================
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5Dialect

spring.main.allow-circular-references=true

docker-compose.yml

Код: Выделить всё

version: '3.7'

# Define services
services:
# App backend service
app-server:
# Configuration for building the docker image for the backend service
build:
context: . # Use an image built from the specified dockerfile in the `springboot-app-server` directory.
dockerfile: Dockerfile
ports:
- "8081:8080" # Forward the exposed port 4000 on the container to port 4000 on the host machine
restart: always
depends_on:
- db # This service depends on mysql.  Start that first.
environment: # Pass environment variables to the service
SPRING_DATASOURCE_URL: jdbc:mysql://localhost:3306/crm?useSSL=false
SPRING_DATASOURCE_USERNAME: bestuser123
SPRING_DATASOURCE_PASSWORD: bestuser123

# Database Service (Mysql)
db:
image: mysql:8.0
ports:
- "3307:3306"
restart: always
environment:
MYSQL_DATABASE: crm
MYSQL_USER: bestuser123
MYSQL_PASSWORD: bestuser123
MYSQL_ROOT_PASSWORD: bestuser123
Dockerfile

Код: Выделить всё

# Use a Java base image
FROM openjdk:11

# Set the working directory
WORKDIR /

# Copy the application jar to the container
COPY target/crm-0.0.1-SNAPSHOT.war .
EXPOSE 8080
# Set the environment variables
ENV JAVA_OPTS=""

# Define the command to run the application
CMD ["java", "-jar", "crm-0.0.1-SNAPSHOT.war"]
Пожалуйста, помогите мне понять, что я сделал не так, заранее спасибо!

Подробнее здесь: https://stackoverflow.com/questions/753 ... er-compose
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»