怎么在群晖 NAS 的 docker 上跑自己写的 Python

2018-12-15 14:32:24 +08:00
 l4ever
安装了 https://registry.hub.docker.com/_/python/

然后启动的时候不知道怎么办了.

https://s1.ax1x.com/2018/12/15/FaCL4A.png
13668 次点击
所在节点    Python
10 条回复
lizheming
2018-12-15 14:50:12 +08:00
链接那块把你的 python 项目文件夹映射到容器里,然后 entrypoint 那不是有填命令的地方么,直接写 python 你的容器文件夹 /app.py 这样应该就行。其实就是 `docker run -v ~/python-app:/app --entrypoint=["python", "/app/app.py"] python` 这个逻辑的 GUI 化大概。
l4ever
2018-12-15 15:19:14 +08:00
@lizheming 这样是可以,但是 import 里面的第三方库怎么处理呢?
l4ever
2018-12-15 15:21:25 +08:00
requirements.txt 和 Dockerfile 我都创建了.
lizheming
2018-12-15 15:46:37 +08:00
@l4ever 这种建议直接创建个新镜像镜像里把项目文件拷贝进去, `pip install` 一下把依赖装好,然后直接启动就好了。
l4ever
2018-12-15 16:38:45 +08:00
@lizheming 明白了,谢谢.
l4ever
2018-12-15 16:55:24 +08:00
解决方法如下:
1.ssh 登陆 NAS,在个人目录下
mkdir Docker
vi Dockerfile
写入下面内容
FROM python:3
WORKDIR /usr/src/app
COPY requirements.txt ./
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
CMD [ "python", "./app.py" ]

vi requirements.txt
写依赖,一行一个

然后
sudo docker build -t python_app .

成功之后登陆 nas web 管理, 启动的时候映射一下即可.
goodryb
2018-12-15 18:49:30 +08:00
如果只是为了运行 python,还有一个办法
先 python 起一个 alpine3.8 镜像(这个镜像非常小,5M ),启动后在 docker 管理界面进入镜像详情,有一个类似 webshell 的东西,在里面可以安装 python 或者 python3,apk add python/python3
如果要远程用可以安装 ssh 服务,然后就可以像服务器一样登录进去
当然也可以通过 pip 来安装第三方依赖,因为这个是极简的镜像,很多库都没有,可以先安装一些库文件,比如 apk add build-sdk,基本的编译环境就都有了
停止或者启动镜像不影响,别删除就好,
xingo
2018-12-15 19:12:56 +08:00
?在服务器上怎么用 docker 部署在群晖里就怎么部署啊,
像你这种单 python 的可以直接用 docker run python 然后指定 entrypoint 吧
觉得命令麻烦的可以写 yml 用 docker-compose 起啊。。。。

docker 学的不到家看看 docker 文档吧
winglight2016
2018-12-16 11:12:09 +08:00
有定制需求就自己打包 image,用别人的就没法支持自己的业务了

另外,lz 如果是需要跑特定功能的 docker,可以找一下看看有没有现成的 image,我之前就找到一个自动更新 godaddy ip 的 docker,非常好用
julyclyde
2018-12-17 15:52:48 +08:00
穿上裤子再放屁

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/517810

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX