我一直在尝试http://predictionio.apache.org/install/install-docker/本教程。我已经成功构建了Docker映像,但是当我尝试运行docker run
时出现Can't open /etc/predictionio/pio-env.sh
错误。
docker build -t predictionio/pio pio
docker run -ti predictionio/pio
PS:如果我注释掉最后一行CMD ["sh", "/usr/bin/pio_run"]
,则可以成功构建并运行docker image。我也可以从docker bash打开文件。
答案 0 :(得分:0)
我认为您需要授予执行此文件的权限。在Dockerfile的末尾添加以下行
RUN chmod +x pio_run.sh
此外,您可能需要将CMD更改为ENTRYPOINT,如下所示:
ENTRYPOINT ["sh","/usr/bin/pio_run.sh"]
答案 1 :(得分:0)
您的输出状态表明您正在运行Windows。您使用默认命令提示符还是使用docker Terminal?过去在Windows上我也有同样的错误消息,但是在再次尝试本教程后却神秘地消失了。我不确定自己做了什么不同,除了可能使用docker而不是默认命令提示符...
您还可以尝试使用docker-compose代替本教程中介绍的普通docker命令吗?
在启动PIO之前,请确保您的存储(Postgres,MySQL或ElasticSearch)正在运行。
答案 2 :(得分:0)
只需在我的机器上解决它即可。
在Windows上克隆存储库时,git将行尾符号从Unix样式(\ n)转换为Windows样式(\ r \ n)。
您需要打开文件import requests
secret_token = "<your secret token>"
project_id = "<your project id>"
api_root = "https://gitlab.com/api/v4"
desc = """
Your release description. **You can use markdown !**
Don't forget to add download link here.
"""
headers = {
'PRIVATE-TOKEN': secret_token,
}
data = {
"description": desc
}
r_new_release = requests.post(uri, data=data, headers=headers)
if(r_new_release.status_code != 201 and r_new_release.status_code != 200):
raise ValueError(f"Releases API responded with invalid status {r_new_release.status_code}")
new_release = r_new_release.json()
并将其改回(例如,使用Visual Studio Code或Notepad ++)。然后,您需要重建图像,它应该可以工作。
将来,您可能还想禁用自动转换Disable git EOL Conversions