我写了一个简单的脚本如下:
#main.py
def test_function():
val = input('please enter a number')
for i in range(int(val)):
print (i)
我将它 docker 化并放入一个容器中,然后从那里运行它。一切正常。
我有另一台装有 Linux 操作系统的机器。我怎样才能在那里测试这个容器?我需要简单地复制粘贴它还是什么?
回答1
您需要在另一台机器上安装 Docker,然后将映像推送到 docker 注册表(例如 dockerhub / AWS ECR)。
我使用 ECR。您需要创建一个注册表,然后通过运行 docker tag <source image> <url of the registry>
使用注册表的 url 标记您的 docker 图像,然后运行 docker push <image name>
并从另一台机器上拉它,运行 docker pull <url of the rigistry>
或者,您可以简单地在另一台机器上安装 docker,将 dockerfile 复制到那里,然后运行 docker build -t <image name> /path/to/file
回答2
有几个抽象,你应该使用它们:
- 语言抽象(你的情况是 python )
- 操作系统抽象(在您的情况下为 docker )
- api抽象(在您的情况下为标准输出)
对于像您这样的简单功能,没有理由对 dockerized 应用程序进行两次测试,因为 docker 很好地处理了 os 抽象,并使您的容器环境独立(大多数情况下)。
对于您的功能,您应该将输出从 stdout 更改为其他来源,并测试数据,您将使用单元测试放在那里。
你应该使用相同的语言,它是库(如 PyTest
)。