如何在 docker 容器上安装 python
How to install python on a docker container
我已经创建了一个 docker-compose yml 文件到 运行 一个 docker 容器中的 cron-job。
运行 在 docker 容器内的 cron-job 必须 运行 一个 python 脚本并连接通过redis-sentinel mysql一个redis。
Cron-job 需要 python 并且需要 python-dependencies(mysql 和 redis sentinel) 安装在 docker 容器到 运行 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-stopped
networks:
default:
external:
name: cnet
我需要在此处进行哪些更改才能在 docker 容器上安装 python 和所需的依赖项,这些依赖项将在 运行 生成此组合文件后出现。
可以直接使用python镜像(如果需要alpine,有基于它的版本)https://hub.docker.com/_/python
我认为解决您的请求的最佳方法是构建您自己的 docker 图像:
创建docker 文件
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 集线器注册表中,或者直接从您的 docker-compose
构建和使用它
构建您的图像并与 docker compose
一起使用
第一种方式
您可以构建并将其推送到 docker 中心(在这里您可以找到更多信息:https://docs.docker.com/get-started/part3/)
那么您的 docker 撰写将是这样的:
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: .
我已经创建了一个 docker-compose yml 文件到 运行 一个 docker 容器中的 cron-job。
运行 在 docker 容器内的 cron-job 必须 运行 一个 python 脚本并连接通过redis-sentinel mysql一个redis。
Cron-job 需要 python 并且需要 python-dependencies(mysql 和 redis sentinel) 安装在 docker 容器到 运行 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-stopped
networks:
default:
external:
name: cnet
我需要在此处进行哪些更改才能在 docker 容器上安装 python 和所需的依赖项,这些依赖项将在 运行 生成此组合文件后出现。
可以直接使用python镜像(如果需要alpine,有基于它的版本)https://hub.docker.com/_/python 我认为解决您的请求的最佳方法是构建您自己的 docker 图像:
创建docker 文件
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 集线器注册表中,或者直接从您的 docker-compose
构建和使用它构建您的图像并与 docker compose
一起使用 第一种方式您可以构建并将其推送到 docker 中心(在这里您可以找到更多信息:https://docs.docker.com/get-started/part3/)
那么您的 docker 撰写将是这样的:
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: .