我正在尝试构建一个 Docker 容器,该容器应该从 requests.txt 文件安装一系列 python 包。其中一个条目是托管在私有 GitHub 存储库上的 python 包。为了安装它,我创建了一对 SSH 密钥,并将公共密钥作为部署密钥添加到 GitHub 存储库。
\n但是,当我构建容器时,我收到此错误:
\nERROR: Command errored out with exit status 128: git clone -q 'ssh://****@github.com:organization/my-package' /tmp/pip-install-e81w4wri/my-package Check the logs for full command output.\nRun Code Online (Sandbox Code Playgroud)\n我尝试通过更改 docker 文件的 pip install 命令来调试错误,RUN git clone git@github.com:organization/my-package.git并且效果很好。
这个错误是什么意思以及如何解决它?我可以克隆它并使用专用命令安装它,但如果可能的话,我想将所有要求保留在一个地方。谢谢!
\n这是我正在使用的 Dockerfile:
\nFROM joyzoursky/python-chromedriver:3.7-alpine3.8 as base\n\nFROM base as builder\n\nRUN echo "http://dl-8.alpinelinux.org/alpine/edge/community" >> /etc/apk/repositories\nRUN apk --no-cache --update-cache add bash gcc gfortran build-base git wget freetype-dev …Run Code Online (Sandbox Code Playgroud) 我遇到过这种乍一看似乎违反直觉的 python 行为:我有两个对象,Simulation和SimulationResults,定义如下:
class Simulation:
def run_sim_1(self):
results_logger_1 = SimulationResults()
for _ in range(10):
results_logger_1.append(1)
return results_logger_1
def run_sim_2(self):
results_logger_2 = SimulationResults()
for _ in range(10):
results_logger_2.append(2)
return results_logger_2
class SimulationResults:
results = []
def append(self,n):
self.results.append(n)
Run Code Online (Sandbox Code Playgroud)
在这两种 Simulation 方法中,我实例化了一个SimulationResult对象:results_logger_1和results_logger_2。我的期望是这两个实例将在每个方法的上下文中定义,然后通过返回它们将它们带出它,因此我期望两个明确定义的实例。
但是,当我运行代码时,结果发现这两个实例似乎是(或指向)同一个对象。
sim_1= Simulation()
results_1 = sim_1.run_sim_1()
print(len(results_1.results)) # 10, as expected right!
print(results_1.results) # [1,1,1,1,1,1,1,1,1,1] also as expected
results_2 = sim_1.run_sim_2()
print(len(results_2.results)) # this is 20, rather than 10
print(results_2.results) …Run Code Online (Sandbox Code Playgroud)