V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
l4ever
V2EX  ›  Python

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

  •  
  •   l4ever · 2018-12-15 14:32:24 +08:00 · 13888 次点击
    这是一个创建于 2178 天前的主题,其中的信息可能已经有所发展或是发生改变。
    10 条回复    2018-12-17 15:52:48 +08:00
    lizheming
        1
    lizheming  
       2018-12-15 14:50:12 +08:00   ❤️ 1
    链接那块把你的 python 项目文件夹映射到容器里,然后 entrypoint 那不是有填命令的地方么,直接写 python 你的容器文件夹 /app.py 这样应该就行。其实就是 `docker run -v ~/python-app:/app --entrypoint=["python", "/app/app.py"] python` 这个逻辑的 GUI 化大概。
    l4ever
        2
    l4ever  
    OP
       2018-12-15 15:19:14 +08:00
    @lizheming 这样是可以,但是 import 里面的第三方库怎么处理呢?
    l4ever
        3
    l4ever  
    OP
       2018-12-15 15:21:25 +08:00
    requirements.txt 和 Dockerfile 我都创建了.
    lizheming
        4
    lizheming  
       2018-12-15 15:46:37 +08:00
    @l4ever 这种建议直接创建个新镜像镜像里把项目文件拷贝进去, `pip install` 一下把依赖装好,然后直接启动就好了。
    l4ever
        5
    l4ever  
    OP
       2018-12-15 16:38:45 +08:00
    @lizheming 明白了,谢谢.
    l4ever
        6
    l4ever  
    OP
       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
        7
    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
        8
    xingo  
       2018-12-15 19:12:56 +08:00
    ?在服务器上怎么用 docker 部署在群晖里就怎么部署啊,
    像你这种单 python 的可以直接用 docker run python 然后指定 entrypoint 吧
    觉得命令麻烦的可以写 yml 用 docker-compose 起啊。。。。

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

    另外,lz 如果是需要跑特定功能的 docker,可以找一下看看有没有现成的 image,我之前就找到一个自动更新 godaddy ip 的 docker,非常好用
    julyclyde
        10
    julyclyde  
       2018-12-17 15:52:48 +08:00
    穿上裤子再放屁
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2796 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 41ms · UTC 11:47 · PVG 19:47 · LAX 03:47 · JFK 06:47
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.