cha*_*ani 5 python ssh flask docker docker-compose
一般来说,我的问题是关于在 docker-compose 构建期间能够访问 ssh 密钥。
当我使用 docker-compose.yml 文件中的卷映射运行 docker-compose up 时,我可以访问我的 ssh 密钥,如下所示:
services:
flask:
volumes:
- ~/.ssh:/root/.ssh
Run Code Online (Sandbox Code Playgroud)
但我无法在 docker-compose 构建期间访问它们
更多细节
我正在运行一个 python Flask 应用程序。我想将私人 git 存储库安装为 pip 包。所以我将这一行添加到requirements.txt
git+ssh://git@github.com/username/repo_name.git@branch_name
Run Code Online (Sandbox Code Playgroud)
如果我在服务中运行 bash,docker-compose run flask bash那么我可以手动运行pip install git+ssh://git@github.com/username/repo_name.git@branch_name并且这可以工作,因为我有到 ssh 键的卷映射。
但是当我运行 docker-compose build 时,它无法访问私有 git 存储库,因为它无权访问 ssh 密钥。
任何人都知道是否有办法让 docker-compose 构建对 ssh 密钥的访问权限,或者解决此问题的其他方法?
ssh 比仅使用用户名:密码更难设置。这是我添加到requirements.txt 中使其正常工作的行:
-e git+https://<username>:<password>@github.com/<path to git repo>.git#egg=<package_name>
Run Code Online (Sandbox Code Playgroud)
如果你想获得特定的标签,那么你可以这样做:
-e git+https://<username>:<password>@github.com/<path to git repo>.git@<tag_name>#egg=<package_name>
Run Code Online (Sandbox Code Playgroud)
您可以使用任何有权访问 git 存储库的用户名和密码,但出于明显的安全原因,我建议您不要使用主 git 帐户。专门为此项目创建一个新用户,并授予他们访问权限。