python - 在给定的 docker-compose 容器内执行 Python 脚本

标签 python docker docker-compose

我制作了一个小 python 脚本来在 RethinkDB 中创建数据库和一些表

但现在我尝试在使用 docker-compose 启动的 rethink 容器中启动这个 python 脚本。

这是我的 docker-compose.yml 重新思考容器配置

# Rethink DB
rethink:
  image: rethinkdb:latest
  container_name: rethink
  ports:
    - 58080:8080
    - 58015:28015
    - 59015:29015

我尝试在启动容器后执行脚本

docker exec -it rethink python src/app/db-install.py

但我收到此错误

rpc error: code = 2 desc = oci runtime error: exec failed: exec: "python": executable file not found in $PATH

在我的容器中找不到 Python。是否可以使用 docker-compose 或 docker exec 在给定容器内执行 python 脚本?

最佳答案

首先查明容器中是否有python可执行文件:

docker exec -it rethink which python

如果存在,则使用上一步中which命令提供的绝对路径:

docker exec -it rethink /absolute/path/to/python src/app/db-install.py

如果没有,您可以将 python 脚本 转换为 bash 脚本,这样您就可以运行它,而无需额外的可执行文件.

或者您可以创建一个dockerfile,使用基础镜像,然后安装python

docker 文件:

FROM rethinkdb:latest
RUN apt-get update && apt-get install -y python

Docker 撰写文件:

rethink:
  build : .
  container_name: rethink
  ports:
    - 58080:8080
    - 58015:28015
    - 59015:29015

关于python - 在给定的 docker-compose 容器内执行 Python 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40935895/

相关文章:

python - 我 pickle 了我的元组

python - 使用plotly绘制geopandas数据框

docker - 主机上的卷 - Postgres (Mac OS) 的权限被拒绝

php - Composer (PHP) 如何融入 Docker 工作流程?

Mysql2::Error:排序内存不足,考虑使用 docker-compose.yml 增加服务器排序缓冲区大小

python - 如何查询两个表,表1中的某些项与表2没有关联?

python - 从源代码安装 Python 并且无法导入 Tkinter - 如何安装?

docker - 线程 “main” java.lang.RuntimeException中的异常:无法重置文件系统

docker - 如果 dockerfile 的名称不是 Dockerfile,我如何构建 dockerfile?

docker - 如何仅使用 docker-compose.yml 创建数据容器?