2017-08-02 75 views
1

我試圖在Ubuntu docker容器內運行一個bash文件,我試圖修改Postgresql,postgresql.conf和pg_hba兩個文件.conf文件,這裏是我試圖運行bash的文件:沒有這樣的文件或目錄sed命令運行在Docker容器內的bash文件中

sed -i -e"s/^#listen_addresses.*$/listen_addresses = '*'/" 
    /var/lib/postgresql/data/postgresql.conf 
    echo "host all all 0.0.0.0/0 md5" >> 
    /var/lib/postgresql/data/pg_hba.conf 
    /etc/init.d/postgresql restart 

這裏是如何我試圖運行它:

[email protected]: ./db.sh 

db.sh是bash的名稱文件,文件postgresql.conf位於我使用/ var/lib/postgresql/data /的路徑中,但是我收到以下消息:

: No such file or directorystgresql/data/postgresql.conf 

怪異的是,如果運行的是bash外的命令中的每一個文件,它工作正常,像這樣:

[email protected]:/# sed -i -e"s/^#listen_addresses.*$/listen_addresses = '*'/" /var/lib/postgresql/data/postgresql.conf 

這是搬運工,撰寫文件中的一部分,其中i 「M複製我的本地文件的bash到postgrest圖像

 volumes: 
     - pgdata:/var/lib/postgresql/data 
     - ./shell_scripts:/shell_scripts 

volumes: 
    pgdata: 
+0

您使用的是什麼postgresql docker鏡像?也許你正在使用一個沒有像sed這樣的基本shell工具的鏡像。 – PressingOnAlways

+0

我使用Postgres的不指定這樣 DB版本: 圖片:Postgres的 –

+0

確保您使用的完整路徑的腳本,即/var/lib/postgresql/data/postgresql.conf –

回答

0

這是一個問題,因爲你有你的命令多行。它應該像下面

sed -i -e"s/^#listen_addresses.*$/listen_addresses = '*'/" /var/lib/postgresql/data/postgresql.conf 

echo "host all all 0.0.0.0/0 md5" >> /var/lib/postgresql/data/pg_hba.conf 

/etc/init.d/postgresql restart 
+0

這並沒有爲我工作,它在每個空白行中都有錯誤,問題仍在繼續 –

0

多次嘗試後,我不能讓bash的文件工作,所以我刪除,並在我的搬運工控制檯手動執行的每個命令。

無論如何謝謝你。

相關問題