连接Jenkins容器到MySQL容器



我正在尝试在我的Laravel应用程序上做CI/CD。为了做到这一点,我必须使用Jenkins和一个命令是php artisan migrate:fresh --seed。这意味着我需要使用SQL数据库来实现这一点。

我正在使用Portainer。我已经创建了两个詹金斯图像与PHP 8和作曲家在它,也是一个MySQL图像。两者通过一个称为jenkins-mysql的网络连接。我为图片创建了两个容器。

我正试图访问詹金斯容器控制台内的MySQL容器。Aka我想通过Jenkins容器内的MySQL容器进行迁移。

我在互联网上找到的只是简单地通过网络连接它们(我已经这样做了),并在jenkins容器内安装MySQL,但我发现了它的问题,我宁愿走MySQL容器路线。我还没有找到一种方法可以通过网络从Jenkins容器控制台直接连接到MySQL容器。

作为额外的上下文,以下是两个图像的Dockerfiles:

詹金斯:

FROM jenkins/jenkins:lts-jdk11
USER root
RUN apt -y update && apt -y upgrade
RUN apt install -y lsb-release ca-certificates apt-transport-https software-properties-common gnupg2 wget
RUN echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | tee /etc/apt/sources.list.d/sury-php.list
RUN wget -qO - https://packages.sury.org/php/apt.gpg | apt-key add -
RUN apt -y update
RUN apt install -y php8.0-cli php8.0-common php8.0-opcache php8.0-readline php8.0 libapache2-mod-php8.0 php-common php8.0-xml php8.0-gd php8.0-curl php8.0-zip unzip
RUN apt -y update
RUN wget -O composer-setup.php https://getcomposer.org/installer
RUN php composer-setup.php --install-dir=/usr/local/bin --filename=composer
EXPOSE 8080:8080/tcp
EXPOSE 9010:80/tcp
EXPOSE 50000:50000/tcp

mysql:

FROM mysql:latest
ENV MYSQL_ROOT_PASSWORD root
ENV MYSQL_DATABASE aguas
EXPOSE 3306

正如您已经意识到的那样,您将两个容器置于同一个docker网络中,以便它们可以相互通信。现在你可以"下决心"了。该网络中的任何容器及其docker名称。Docker会为你解析正确的IP。

更多信息见链接:

  • 如何通过名称而不是IP地址到达docker容器?

最新更新