Spring Boot云配置,GitLab,Docker和SSH密钥设置

时间:2018-02-07 02:05:30

标签: git docker ssh spring-cloud

我正在尝试使用构建Spring Cloud应用程序,该应用程序利用GitLab上托管的存储库来存储配置详细信息。我可以在我的本地机器上运行它。但是,由于需要SSH密钥,我很难将其放在容器中。例如,我的配置服务器的application.properties文件:

server.port=8888
spring.cloud.config.server.git.uri=git@gitlab.com:repo

我引用了这个StackOverflow question;但是,我使用的是docker-compose文件。

   # Use postgres/example user/password credentials
version: '3.2'

services:
  db:
    image: postgres
    ports:
      - 5000:5432
    environment:
      POSTGRES_PASSWORD: example
    volumes:
      - type: volume
        source: psql_data
        target: /var/lib/postgresql/data
    networks: 
      - app
    restart: always
  config:
    image: kellymarchewa/config_server
    networks:
      - app
    restart: always
  search:
    image: kellymarchewa/search_api
    networks:
      - app
    restart: always
    ports:
      - 8081:8081
    depends_on:
      - db
      - config
      - inventory
  inventory:
    image: kellymarchewa/inventory_api
    depends_on:
        - db
        - config
    ports:
      - 8080:8080
    networks:
      - app
    restart: always
volumes:
  psql_data:
networks: 
  app:

在使用撰写文件时,无论如何都要从docker容器访问私有git repo吗? 感谢。

1 个答案:

答案 0 :(得分:2)

解决此问题的两个步骤:

  1. 在Docker容器将运行的本地计算机中生成SSH密钥文件

  2. 修改docker-composer文件以添加卷选项,以将.ssh文件夹从本地计算机映射到docker容器。

    config:
        image: kellymarchewa/config_server
        volumes:
        - /root/.ssh:/root/.ssh
        networks:
        - app
        restart: always
    
  3. 跳这可以解决您的问题,如果您有任何问题,您可以与我签约。