簡體   English   中英

如何在無人機上使用 python 和 java.io?

[英]How to use python and java on drone.io?

我開發了一個使用 package owlready2的 python 項目。 對於它的某些功能,owlready2 通過subprocess -package 顯式調用java -jar...

在我的本地機器上,這工作正常。 現在我想用drone.io設置CI。

我當前的.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 web 站點上搜索 go 並搜索這樣的圖像。 如果找不到,則可以創建自己的 Docker 映像,其中包含您想要/需要的任何內容,將其推送到 DockerHub,然后在您的 Drone 構建文件中引用它。

按照@Steve 的回答,我在 repo 中創建了一個自定義 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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM