如何使用dockerfile中的mysql配置达到其URL

发布于 2025-02-12 01:42:46 字数 912 浏览 0 评论 0原文

我有一个WAR文件,其中包含以下MySQL设置;我想使用Dockerfile对其进行编译,以便可以使用MySQL Docker映像。 但是,我缺少/无法正确配置某些内容,因此,我正在收到连接错误。

        url: jdbc:mysql://localhost:3307/test-db
        username: root
        password: yum-hai-hum

Dockerfile

FROM mysql:5.7
ADD test-db.sql /docker-entrypoint-initdb.d
EXPOSE 3307

ENV MYSQL_ROOT_PASSWORD=yum-hai-hum
ENV MYSQL_DATABASE=test-db
ENV MYSQL_USER=root
ENV MYSQL_PASSWORD=yum-hai-hum

FROM openjdk:8-jdk-alpine
ARG JAR_FILE=build/libs/*.war
COPY ${JAR_FILE} app.war

ENTRYPOINT ["java","-jar","/app.war"]

错误:

构建并运行命令用于图像和容器:

docker build -t="navin/java-app" .
docker run -e "SPRING_PROFILES_ACTIVE=dev" -p 8080:8084 -t navin/java-app

I have one war file with the following MySQL setup; I wanted to compile it using Dockerfile so that I could utilise the mysql docker image.
However, I am missing/not properly configuring something, and as a result, I am receiving connection errors.

        url: jdbc:mysql://localhost:3307/test-db
        username: root
        password: yum-hai-hum

DockerFile

FROM mysql:5.7
ADD test-db.sql /docker-entrypoint-initdb.d
EXPOSE 3307

ENV MYSQL_ROOT_PASSWORD=yum-hai-hum
ENV MYSQL_DATABASE=test-db
ENV MYSQL_USER=root
ENV MYSQL_PASSWORD=yum-hai-hum

FROM openjdk:8-jdk-alpine
ARG JAR_FILE=build/libs/*.war
COPY ${JAR_FILE} app.war

ENTRYPOINT ["java","-jar","/app.war"]

Error:
enter image description here

Build and run command for image and container:

docker build -t="navin/java-app" .
docker run -e "SPRING_PROFILES_ACTIVE=dev" -p 8080:8084 -t navin/java-app

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

不回头走下去 2025-02-19 01:42:46
url: jdbc:mysql://localhost:3307/test-db

纠正我,如果我错了,

MySQL Server的主机是Container1-IP:3307

War App在Container2上,它正在尝试连接到LocalHost:3307

可能会将URL的主机从local-Host更改为到192.168.100.19。您可以在第一个容器上使用命令ifconfig获得实际的IP

url: jdbc:mysql://localhost:3307/test-db

correct me if i`m wrong,

The host of Mysql server is container1-ip:3307

the war app is on container2, and it is trying to connect to localhost:3307

probably change host of url from localhost to something like 192.168.100.19. You can get the actual ip using command ifconfig on the first container

抱着落日 2025-02-19 01:42:46

默认Docker容器访问主机IP是172.17.0.1,如果您有一个映射到主机的MySQL端口3306,则可以使用

url: jdbc:mysql://172.17.0.1:3306/test-db

The default Docker container access host IP is 172.17.0.1, If you have a MySQL port 3306 that maps to the host, you can use the

url: jdbc:mysql://172.17.0.1:3306/test-db
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文