gpt4 book ai didi

linux - 在 docker 容器内运行的 bash 文件中没有这样的文件或目录 sed 命令

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:19:36 25 4
gpt4 key购买 nike

我正在尝试在 Ubuntu docker 容器中运行一个 bash 文件,我正在尝试修改 Postgresql 的两个文件,postgresql.conf 和 pg_hba.conf,这是我正在尝试运行的 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

这是我尝试运行它的方式:

   root@fe4fcebedad6: ./db.sh

db.sh 是 bash 文件的名称,文件 postgresql.conf 位于我正在使用的路径/var/lib/postgresql/data/但我收到此消息:

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

奇怪的是,如果在 bash 文件之外运行每一个命令,它就可以正常工作,如下所示:

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

这是 docker-compose 文件中我将本地 bash 文件复制到 postgrest 镜像中的部分

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

volumes:
pgdata:

最佳答案

这是一个问题,因为您的命令中有多行。应该像下面这样

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

关于linux - 在 docker 容器内运行的 bash 文件中没有这样的文件或目录 sed 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45451267/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com