我正在尝试使用构建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吗? 感谢。
答案 0 :(得分:2)
解决此问题的两个步骤:
在Docker容器将运行的本地计算机中生成SSH密钥文件
修改docker-composer文件以添加卷选项,以将.ssh文件夹从本地计算机映射到docker容器。
config:
image: kellymarchewa/config_server
volumes:
- /root/.ssh:/root/.ssh
networks:
- app
restart: always
跳这可以解决您的问题,如果您有任何问题,您可以与我签约。