如何在基于Alpine的Docker容器中配置umask

保罗·泰勒

我有一个Java应用程序,它根据缩减的Alpine发行版在docker中运行,我希望将umask设置为0000,以便所有用户均可访问该应用程序在已配置的卷/ music中创建的所有文件。

Dockerfile做的最后一件事是运行一个脚本来启动应用程序

CMD /opt/songkong/songkongremote.sh

该文件包含以下内容

   umask 0000
   java -XX:MaxRAMPercentage=60 \  
        -Dcom.mchange.v2.log.MLog=com.mchange.v2.log.jdk14logging.Jdk14MLog\  
       -Dorg.jboss.logging.provider=jdk \       
-Djava.util.logging.config.class=com.jthink.songkong.logging.StandardLogging\             --add-opens java.base/java.lang=ALL-UNNAMED -jar lib/songkong-6.9.jar -r

该应用程序运行,但是在docker容器日志中,我看到以下输出到stdout

/opt/songkong/songkongremote.sh: umask: line 1: illegal mode: 0000

表示umask命令不起作用,我不理解,因为这是umask的有效值。(我也尝试过umask 000失败,并出现相同的错误)

我也尝试添加

#!/bin/sh

作为文件的第一行,但是Docker抱怨找不到/ bin / sh。

完整的Dockerfile是:

FROM adoptopenjdk/openjdk11:alpine-jre

RUN apk --no-cache add \
      ca-certificates \
      curl \
      fontconfig \
      msttcorefonts-installer \
      tini \
 && update-ms-fonts \
 && fc-cache -f

RUN mkdir -p /opt \
 && curl http://www.jthink.net/songkong/downloads/build1114/songkong-linux-docker.tgz?val=121| tar -C /opt -xzf - \
&& find /opt/songkong -perm /u+x -type f -print0 | xargs -0 chmod a+x

EXPOSE 4567

ENTRYPOINT ["/sbin/tini"]

# Config, License, Logs, Reports and Internal Database
VOLUME /songkong

# Music folder should be mounted here
VOLUME /music

WORKDIR /opt/songkong

CMD /opt/songkong/songkongremote.sh
丹尼·B

您的/opt/songkong/songkongremote.sh脚本看起来像非Linux换行符(Windows?)。

在此处输入图片说明

您可以通过运行以下命令查看它:

$ docker run --rm -it your-image-name vi /opt/songkong/songkongremote.sh

这也是#!/bin/sh生产线无法正常工作的相同原因,可能看起来#!/bin/sh^M也是如此。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在Docker Alpine容器中启动Shell

如何在Docker容器中向前移植?

在Alpine Docker容器中运行OpenSSH

如何在基于Alpine的Docker映像中使用bash?

如何在Alpine Docker容器中运行Bash脚本?

如何在php:7.4-fpm-alpine docker容器中启用xdebug?

如何在Docker容器上配置环境变量而不在Dockerfile中对其进行硬编码?

如何在Sonarqube Docker映像中跨容器调用持久化配置和分析

如何在Docker容器中配置Rabbitmq.config?

如何在Docker Alpine Linux容器中运行Postgres?

Cron在postgresql:alpine docker容器中

如何在基于Alpine的容器中安装rar?

如何在docker容器中为karaf配置jmx端口?

如何在Docker容器中运行pdb

如何在Docker容器中重新加载服务配置(php-fpm)?

如何在php-fpm-alpine docker容器中运行cron作业?

在Alpine Linux Docker容器中构建GNATCOLL

如何在Alpine容器中安装SSHFS?

如何在Docker容器中运行基于Netlogo平台代理的建模?

在Alpine docker容器中运行geckodriver

如何在Windows中播种Docker容器

如何在Docker容器中配置Spring Cloud OAuth2

如何在Ubuntu中配置Alpine以读取我的Gmail?

如何在基于Java和Docker的OpenWhisk操作中配置和访问日志?

Docker:如何在基于Alpine的Docker镜像中使用bash?

如何在 docker 容器中运行 grails-vue 配置文件?

如何在docker容器内的微服务架构中配置API网关

如何在 Docker 容器中安装 USBIP

如何在ansible中运行docker容器?