如何在 drone.io 上使用 python 和 java?
How to use python and java on drone.io?
我开发了一个使用包 owlready2
的 python 项目。对于它的一些功能,owlready2 通过 subprocess
-package.
显式地调用 java -jar ...
在我的本地机器上这工作正常。现在我想设置 CI 和 drone.io。
我现在的 .drone.yml
是这样的:
---
kind: pipeline
name: python-3-8
steps:
- name: test
image: python:3.8
commands:
- pip install -r requirements.txt
- pip install .
- python -m unittest yamlpyowl.tests
在测试摘要中我得到错误:
...
File "/usr/local/lib/python3.8/subprocess.py", line 1702, in _execute_child
raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory: 'java'
这很合乎逻辑,因为我使用图像“python:3.8”。
问题:如何让java在测试机上可用?
您必须使用的内容由您指定的 Docker 图像定义。您使用的是标准 python3.8
Docker 图片,因此您只有 Python 可用。
您需要找到或生成一个包含 Python 和 Java 工具集的 Docker 图像,并将其提供给 Drone 可以访问的地方。这可能在 DockerHub 上,您可以在上面创建一个帐户并免费使用。我不知道 DockerHub 上是否已有包含这两个工具集的图像。我建议您访问 DockerHub 网站并搜索这样的图像。如果你找不到,那么你可以创建一个你自己的 Docker 图像,其中包含你 want/need 的任何内容,将其推送到 DockerHub,然后在你的 Drone 构建文件中引用它.
根据@Steve 的回答,我在存储库中创建了一个自定义 docker 图像:carvk/java_python.
现在工作.drone.yml
阅读
---
kind: pipeline
name: python-3-8
steps:
- name: test
image: carvk/java_python:openjdk15_python38
commands:
- pip install -r requirements.txt
- pip install .
- python -m unittest yamlpyowl.tests
我开发了一个使用包 owlready2
的 python 项目。对于它的一些功能,owlready2 通过 subprocess
-package.
java -jar ...
在我的本地机器上这工作正常。现在我想设置 CI 和 drone.io。
我现在的 .drone.yml
是这样的:
---
kind: pipeline
name: python-3-8
steps:
- name: test
image: python:3.8
commands:
- pip install -r requirements.txt
- pip install .
- python -m unittest yamlpyowl.tests
在测试摘要中我得到错误:
...
File "/usr/local/lib/python3.8/subprocess.py", line 1702, in _execute_child
raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory: 'java'
这很合乎逻辑,因为我使用图像“python:3.8”。
问题:如何让java在测试机上可用?
您必须使用的内容由您指定的 Docker 图像定义。您使用的是标准 python3.8
Docker 图片,因此您只有 Python 可用。
您需要找到或生成一个包含 Python 和 Java 工具集的 Docker 图像,并将其提供给 Drone 可以访问的地方。这可能在 DockerHub 上,您可以在上面创建一个帐户并免费使用。我不知道 DockerHub 上是否已有包含这两个工具集的图像。我建议您访问 DockerHub 网站并搜索这样的图像。如果你找不到,那么你可以创建一个你自己的 Docker 图像,其中包含你 want/need 的任何内容,将其推送到 DockerHub,然后在你的 Drone 构建文件中引用它.
根据@Steve 的回答,我在存储库中创建了一个自定义 docker 图像:carvk/java_python.
现在工作.drone.yml
阅读
---
kind: pipeline
name: python-3-8
steps:
- name: test
image: carvk/java_python:openjdk15_python38
commands:
- pip install -r requirements.txt
- pip install .
- python -m unittest yamlpyowl.tests