首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  Docker

请问各位 Dockerfile 里面 Run 的命令怎么授予 root 权限操作。

  •  
  •   ThinkTwive · 25 天前 · 1694 次点击

    FROM pgsql:v1
    COPY ./* /home/setup/
    WORKDIR /home/setup
    RUN su - postgres -c "pg_ctl start"; \
    cd script; \
    chmod +x ./*.sh; \
    sh install.sh
    ENTRYPOINT ["/usr/sbin/init"]
    现在里面执行 su - postgres -c "pg_ctl start"这一条命令的时候就会报错。提示权限不足。
    已经卡了两天了。求大佬答疑解惑

    12 回复  |  直到 2019-11-15 17:37:53 +08:00
        1
    jybox   25 天前
    USER root
    RUN ...
    USER <原来的用户,详见 pgsql:v1>
        2
    ThinkTwive   25 天前
    @jybox 感谢回答,加上过 root,但还是不起作用
        3
    ThinkTwive   25 天前
    要是手动进入镜像的话我知道可以通过--privileged 参数来解决,现在在 Dockerfile 里面。我真的抓瞎了。
        4
    zunceng   25 天前
    docker 官方文档里面就有 postgresql 的例子 不需要自己写呀
        5
    ThinkTwive   25 天前 via Android
    @zunceng emmm 这个镜像是公司产品的镜像,然后这个产品的安装需要数据库启动。。。所以才要执行这一步
        6
    zunceng   25 天前   ♥ 1
    放在 entrypoint 里面做吧 可能要加个判断 第二次启动的时候跳过安装
        7
    jaynos   25 天前   ♥ 1
    可以看下官方的这一行代码

    https://github.com/docker-library/postgres/blob/master/11/alpine/docker-entrypoint.sh#L48

    原理就是在起容器的时候再做初始化工作(执行 entrypoint)
        8
    ThinkTwive   25 天前
    @jaynos 感谢指导。对 entrypoint 还不太了解。我使用 entrypoint 时"su","-","postgres"分别是三个参数。可以执行,但是需要输入密码,输入密码后还是提示权限有问题
    @zunceng 好的,感谢指导,我仔细看看这个代码。
        9
    jaynos   24 天前
        10
    ThinkTwive   24 天前
    @jaynos 十分感谢。感觉一个坑接着一个坑。公司内网,感觉里面好多代码都操作不了。想直接用官方的数据库镜像,发现公司产品只支持 centos7 和 suse11。感觉要崩溃了,我仔细研究下 gosu 怎么用吧。su-exec 没有这个命令,我又试了下 sudo su - postgres,发现还是不行
        11
    jaynos   24 天前
    @ThinkTwive #10

    docker 和什么宿主机没关系呀? 想自己编译镜像可以阿里云开个几小时的按时付费香港实例 1c2g, 大概一小时 2 毛钱
        12
    ThinkTwive   24 天前
    @jaynos 公司里面这些都上不去。。在上面做了,也传不到公司的服务器上。我现在离线装了个 gosu。然后使用
    gosu postgres:dba pg_ctl start。很确定这个组名就是安装数据库的那个组名和用户名。但是还是提示 database dictionary 没有 initial。然后我自己 initial,又提示我,初始化失败,缺少 ascii_and_mic 文件。。。
    感觉用户组名都一样怎么会打不开呢。是不是 gosu 的语法我理解错了
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1142 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 22ms · UTC 23:18 · PVG 07:18 · LAX 15:18 · JFK 18:18
    ♥ Do have faith in what you're doing.