为了账号安全,请及时绑定邮箱和手机立即绑定

如何在 docker 容器上安装 python

如何在 docker 容器上安装 python

炎炎设计 2023-07-11 13:45:23
我创建了一个 docker-compose yml 文件来在 docker 容器中运行 cron-job 。将在 docker 容器内运行的 cron-job 必须运行python脚本并通过 redis-sentinel 连接到mysql和redis。Cron-job 需要在 docker 容器中安装python 和 python 依赖项(mysql 和 redis sentinel)才能成功运行 python 脚本。这是我的 docker-compose yml 文件version: '3'services:  cron-job:    image: alpine:3.10    command: crond -f -d 8    volumes:      - /Users/anshul/cron:/etc/crontabs/root:z    restart: unless-stoppednetworks:  default:    external:      name: cnet我需要在这里做哪些更改才能在 docker 容器上安装 python 和所需的依赖项,这些依赖项将在运行此 compose 文件后出现。
查看完整描述

1 回答

?
RISEBY

TA贡献1856条经验 获得超5个赞

创建泊坞窗文件

Dockerfile


FROM python:3


WORKDIR /usr/src/app


COPY requirements.txt ./

RUN pip install --no-cache-dir -r requirements.txt

在此示例中,您将需求存储在requirements.txt文件中。


您可以使用命令构建的需求文件pip freeze > requirements.txt(如果您使用虚拟环境,则很有用)


或者


FROM python:3


WORKDIR /usr/src/app


COPY requirements.txt ./

RUN pip install --no-cache-dir {mysql package name} {redis package name}

然后您可以将其推送到 docker hub 注册表中,或者直接从 docker-compose 构建并使用它


构建您的映像并与 docker compose 一起使用

第一种方式

您可以构建并将其推送到 docker hub(在这里您可以找到更多信息: https: //docs.docker.com/get-started/part3/)


那么你的 docker compose 将是这样的:


docker-compose.yaml


version: '3'

services:

  cron-job:

    image: dockerhub-login/your-image-name:tag

    ...

第二种方式

您可以在 docker-compose 中使用 Dockerfile:


docker-compose.yaml


version: '3'

services:

  cron-job:

    build: path/to/Dockerfile

    ...

如果Dockerfile和docker-compose.yaml在同一目录中,那么您可以使用build: .


查看完整回答
反对 回复 2023-07-11
  • 1 回答
  • 0 关注
  • 119 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信