2017-08-02 78 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的文件工作,所以我删除,并在我的搬运工控制台手动执行的每个命令。

无论如何谢谢你。

相关问题