Spring boot 无法在google云上使用gitlab ci管道部署RabbitMQ?

Spring boot 无法在google云上使用gitlab ci管道部署RabbitMQ?,spring-boot,docker,rabbitmq,gitlab,gitlab-ci,Spring Boot,Docker,Rabbitmq,Gitlab,Gitlab Ci,在springboot应用程序中,application-prod.yml的配置如下: spring: rabbitmq: host: rabbitmq port: 5672 username: guest password: guest gitlab ci.yml配置为: services: - docker:dind - rabbitmq:management variables: RABBITMQ_DEFAULT_USER: guest

在springboot应用程序中,
application-prod.yml
的配置如下:

spring:
  rabbitmq:
    host: rabbitmq
    port: 5672
    username: guest
    password:  guest
gitlab ci.yml
配置为:

services:
  - docker:dind
  - rabbitmq:management

variables:
  RABBITMQ_DEFAULT_USER: guest
  RABBITMQ_DEFAULT_PASS: guest
  AMQP_URL: 'amqp://guest:guest@rabbitmq:5672'

stages:
 - build

maven-foo-build:
  stage: build
  script:
    - cd foo
    - ./mvnw package -B -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn
  artifacts:
    paths:
      - foo/target/*.jar
我在gitlab管道上遇到以下异常:

org.springframework.amqp.AmqpConnectException: java.net.ConnectException: Connection refused (Connection refused)
    at org.springframework.amqp.rabbit.support.RabbitExceptionTranslator.convertRabbitAccessException(RabbitExceptionTranslator.java:62)
    at org.springframework.amqp.rabbit.connection.AbstractConnectionFactory.createBareConnection(AbstractConnectionFactory.java:509)
    at org.springframework.amqp.rabbit.connection.CachingConnectionFactory.createConnection(CachingConnectionFactory.java:702)
    at org.springframework.amqp.rabbit.connection.ConnectionFactoryUtils.createConnection(ConnectionFactoryUtils.java:214)
    at org.springframework.amqp.rabbit.core.RabbitTemplate.doExecute(RabbitTemplate.java:2073)
    at org.springframework.amqp.rabbit.core.RabbitTemplate.execute(RabbitTemplate.java:2047)
    at org.springframework.amqp.rabbit.core.RabbitTemplate.execute(RabbitTemplate.java:2027)
    at org.springframework.amqp.rabbit.core.RabbitAdmin.getQueueProperties(RabbitAdmin.java:403)
    at org.springframework.amqp.rabbit.listener.AbstractMessageListenerContainer.attemptDeclarations(AbstractMessageListenerContainer.java:1787)
在运行构建阶段之前,我还尝试创建一个新阶段并在管道上运行,例如:

docker-image-test:
  stage: test
  script:
    - docker run -d --hostname rabbitmq --name rabbitmq  -p 5672:5672 rabbitmq:management
但是得到了相同的结果,并且无法连接RabbitMQ。并且也按照下面的链接,什么也没有得到


希望通过gitlab CI/CD管道在生产中部署RabbitMQ,目前我们正在使用docker image
RabbitMQ:management
。我会错过什么,任何帮助都会很感激,谢谢我找到了解决办法,也许它会帮助别人。问题在于springboot应用程序中的连接工厂,当我们使用live(prod)时,它无法连接docker image
rabbitmq:Management
。因此,我们需要覆盖RabbitMQ配置中的连接工厂

请在此处找到源代码:

private static final String BROKER_URI = "amqp://guest:guest@rabbitmq:5672";
    @Bean
        public CachingConnectionFactory rabbitConnectionFactory(RabbitProperties config)
            throws Exception {
            CachingConnectionFactory connectionFactory = new CachingConnectionFactory();
            connectionFactory.getRabbitConnectionFactory().setUri(BROKER_URI);
            return connectionFactory;
        }