2016-12-02 101 views
1

我做了一個小的Python腳本來創建一個數據庫和內部RethinkDB執行給定的碼頭工人,撰寫容器

但現在我想啓動我rethink容器內推出這個python腳本的一些表內的Python腳本與docker-compose

這是我的搬運工,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-composedocker exec的指定容器內執行python腳本?

+0

讓你的python腳本連接到你的數據庫不是更有意義嗎? – polku

回答

0

的rethinkdb圖像基於Debian:傑西圖像:

https://github.com/rethinkdb/rethinkdb-dockerfiles/blob/da98484fc73485fe7780546903d01dcbcd931673/jessie/2.3.5/Dockerfile

Debian的:傑西圖像沒有安裝python。

所以,你需要創建自己的Dockerfile,是這樣的:

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

然後改變你的搬運工,撰寫:

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

build : .是路徑到您的Dockerfile。

3

先找出如果你有在containerpython可執行文件:

docker exec -it rethink which python 

如果它存在,使用在上一步中which命令提供absolute path

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

如果沒有,你可以將你的python script轉換爲bash script,這樣你就可以在沒有額外的executableslibraries的情況下運行它。

或者您可以創建dockerfile,使用base image,並安裝python

dockerfile:

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

多克爾撰寫的文件:

rethink: 
    build : . 
    container_name: rethink 
    ports: 
    - 58080:8080 
    - 58015:28015 
    - 59015:29015 
相關問題