Hi everyone, i am currently build this docker but get some trouble like this:

Caused by: com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure
101.0
101.0 The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
101.0   at com.mysql.cj.jdbc.exceptions.SQLError.createCommunicationsException(SQLError.java:174)
101.0   at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:64)
101.0   at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:815)
101.0   at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:438)
101.0   at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:241)
101.0   at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:189)
101.0   at com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:138)
101.0   at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:359)
101.0   at com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:201)
101.0   at com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:470)
101.0   at com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:561)
101.0   at com.zaxxer.hikari.pool.HikariPool.<init>(HikariPool.java:100)
101.0   at com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:112)
101.0   at org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl.getConnection(DatasourceConnectionProviderImpl.java:122)
101.0   at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator$ConnectionProviderJdbcConnectionAccess.obtainConnection(JdbcEnvironmentInitiator.java:428)
101.0   at org.hibernate.resource.transaction.backend.jdbc.internal.DdlTransactionIsolatorNonJtaImpl.getIsolatedConnection(DdlTransactionIsolatorNonJtaImpl.java:46)
101.0   ... 63 more
101.0 Caused by: com.mysql.cj.exceptions.CJCommunicationsException: Communications link failure
101.0
101.0 The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
101.0   at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499)
101.0   at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:480)
101.0   at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:61)
101.0   at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:104)
101.0   at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:149)
101.0   at com.mysql.cj.exceptions.ExceptionFactory.createCommunicationsException(ExceptionFactory.java:165)
101.0   at com.mysql.cj.protocol.a.NativeSocketConnection.connect(NativeSocketConnection.java:88)
101.0   at com.mysql.cj.NativeSession.connect(NativeSession.java:120)
101.0   at com.mysql.cj.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:935)
101.0   at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:805)
101.0   ... 76 more
101.0 Caused by: java.net.UnknownHostException: db
101.0   at java.base/java.net.InetAddress$CachedAddresses.get(InetAddress.java:801)
101.0   at java.base/java.net.InetAddress.getAllByName0(InetAddress.java:1509)

Here is my dockerfile and docker-compose:

FROM maven:3.8.1-openjdk-17 AS build
WORKDIR /app
COPY . .
RUN mvn clean package

FROM openjdk:17-jdk-alpine
WORKDIR /app
COPY --from=build /app/target/*.jar /app/app.jar
ENTRYPOINT ["java", "-jar", "/app/app.jar"]

version: '3.8'

services:
  # Database
  db:
    image: mysql
    container_name: swd391-mysql
    restart: always
    ports:
      # <Port exposed> : < MySQL Port running inside container>
      - '3306:3306'
    environment:
      MYSQL_ROOT_PASSWORD: ${DATABASE_ROOT_PASS:-password}
      MYSQL_DATABASE: ${DATABASE_NAME:-swd391}
      MYSQL_USER: ${DATABASE_USER:-dbuser}
      MYSQL_PASSWORD: ${DATABASE_PASS:-dbpass}
      TZ: 'Asia/Ho_Chi_Minh'
    networks:
      - default
    # we mount a data volume to make sure we don't lose data
    volumes:
      - ./mysql_data:/var/lib/mysql
    command: --default-authentication-plugin=mysql_native_password
  # phpmyadmin
  phpmyadmin:
    depends_on:
      - db
    image: phpmyadmin/phpmyadmin
    container_name: swd391-phpmyadmin
    restart: always
    ports:
      - '8080:80'
    environment:
      PMA_HOST: db
      MYSQL_ROOT_PASSWORD: password
      TZ: 'Asia/Ho_Chi_Minh'
    networks:
      - default

  # Spring
  app:
    build: .
    ports:
      - '8888:8080'
    environment:
      - TZ=Asia/Ho_Chi_Minh
    depends_on:
      - db
    container_name: swd391-app
    restart: always
    networks:
      - default

  # Nginx
  nginx:
    image: 'jc21/nginx-proxy-manager:latest'
    container_name: swd391-nginx
    restart: always
    ports:
      - '80:80'
      - '81:81'
      - '443:443'
    volumes:
      - ./nginx.conf/data:/data
      - ./nginx.conf/letsencrypt:/etc/letsencrypt
    depends_on:
      - app
    networks:
      - default
networks:
  default:

Comment From: wilkinsona

Thanks for getting in touch, but it feels like this is a question that would be better suited to Stack Overflow. As mentioned in the guidelines for contributing, we prefer to use GitHub issues only for bugs and enhancements. Feel free to update this issue with a link to the re-posted question (so that other people can find it) or add some more details if you feel this is a genuine bug.