我目前正在建立一个基于“mcr.microsoft.com/azure-sql-edge:最新”的码头形象。
下面是我的码头文件的一部分
FROM mcr.microsoft.com/azure-sql-edge:latest
COPY startup.sh /startup.sh
RUN chmod u+x /startup.sh
...
CMD ["/bin/bash", "-c", "/startup.sh"]当我运行"docker build -t sql-edge“时,我得到以下输出/错误
% docker build -t sql-edge .
[+] Building 3.0s (7/7) FINISHED
=> [internal] load build definition from Dockerfile 0.5s
=> => transferring dockerfile: 37B 0.0s
=> [internal] load .dockerignore 0.7s
=> => transferring context: 2B 0.0s
=> [internal] load metadata for mcr.microsoft.com/azure-sql-edge:latest 0.0s
=> [internal] load build context 0.4s
=> => transferring context: 32B 0.0s
=> [1/3] FROM mcr.microsoft.com/azure-sql-edge:latest 0.0s
=> CACHED [2/3] COPY startup.sh /startup.sh 0.0s
=> ERROR [3/3] RUN chmod u+x /startup.sh 1.5s
------
> [3/3] RUN chmod u+x /startup.sh:
#7 0.937 chmod: changing permissions of '/startup.sh': Operation not permitted
------
executor failed running [/bin/sh -c chmod u+x /startup.sh]: exit code: 1似乎修改脚本的权限,加载到img是不允许的。
说到码头,我是个菜鸟。有人能为我指出正确的方向吗?
PS: startup.sh脚本,是一个包含我所有表和视图定义的脚本。我的任务是升级一个已经存在的mssql停靠映像,使其成为一个天蓝色的sql边缘映像。
发布于 2022-03-02 22:43:40
默认情况下,映像azure-sql-edge不作为根用户运行。因为这是用于开发的,所以运行根来修复权限问题是可以的。在"FROM“之后将以下命令添加到Dockerfile中,修复了问题
USER roothttps://stackoverflow.com/questions/71319029
复制相似问题