Docker: chmod: 无法访问 'chmod': 没有那个文件或目录

Docker: chmod: cannot access 'chmod': No such file or directory

我正在 Rails 18.04 上构建一个 Rails 应用程序,我正在尝试设置部署使用 docker.

的应用程序

我有 2 个入口点文件:

通常,要使文件可执行,我必须 运行 在我的主机终端中执行以下命令:

chmod +x docker/entrypoints/docker-entrypoint.sh
chmod +x docker/entrypoints/sidekiq-entrypoint.sh

但是,我想在 Dockerfile 中实现这一点,而不必总是在主机的终端上进行。

为此,我在 Dockerfile 中添加了以下命令:

RUN chmod +x docker/entrypoints/docker-entrypoint.sh \
    chmod +x docker/entrypoints/sidekiq-entrypoint.sh
ENTRYPOINT ["./docker/entrypoints/docker-entrypoint.sh"]

但后来我 运行 进入了这个错误:

chmod: cannot access 'chmod': No such file or directory

chmod: cannot access '+x': No such file or directory

ERROR: Service 'app' failed to build: The command '/bin/sh -c chmod +x docker/entrypoints/docker-entrypoint.sh chmod +x docker/entrypoints/sidekiq-entrypoint.sh' returned a non-zero code: 1

我尝试了一些解决方案,但 none 到目前为止都有效。任何形式的帮助将不胜感激。

我是这样解决的:

只需将 Dockerfile 中的命令更改为:

RUN chmod +x docker/entrypoints/docker-entrypoint.sh \
    chmod +x docker/entrypoints/sidekiq-entrypoint.sh
ENTRYPOINT ["./docker/entrypoints/docker-entrypoint.sh"]

对此:

RUN ["chmod", "+x", "/docker/entrypoints/docker-entrypoint.sh"] \
    ["chmod", "+x", "/docker/entrypoints/sidekiq-entrypoint.sh"]
ENTRYPOINT ["./docker/entrypoints/docker-entrypoint.sh"]

此外,请努力确保您 copy/copied 将 docker-entrypoint.sh 添加到您的工作目录。以下任何一项都可以:

# Copy other project files
COPY . ./

# Docker init
RUN ["chmod", "+x", "docker-entrypoint.sh"]
ENTRYPOINT ["./docker-entrypoint.sh"]

# Copy docker entrypoint file
COPY docker-entrypoint.sh ./

# Docker init
RUN ["chmod", "+x", "docker-entrypoint.sh"]
ENTRYPOINT ["./docker-entrypoint.sh"]

# Copy docker entrypoint file
COPY /docker/docker-entrypoint.sh ./docker/docker-entrypoint.sh

# Docker init
RUN ["chmod", "+x", "docker/docker-entrypoint.sh"]
ENTRYPOINT ["./docker/docker-entrypoint.sh"]

注意:这取决于您docker-entrypoint.sh的位置以及您要将其复制到的位置。

就这些了。

希望对您有所帮助