如何使用 docker compose 更改 docker 容器内的文件夹权限?

时间:2021-06-29 03:29:36

标签: javascript node.js docker docker-compose dockerfile

我正在使用 nodejs 和自定义 nginx docker 映像 https://github.com/bunkerity/bunkerized-nginx 用于我使用 docker compose 的应用程序。

Nginx 映像具有自动 letencrypt 支持,我们可以绑定挂载文件夹来存储密钥文件。但是出于安全原因,它以 UID/GID 101 的非特权用户身份运行,并获得 /etc/letsencrypt 目录的权限错误.

我搜索了源代码,发现导致此错误的以下几行

docker 镜像检查的条件

# /etc/letsencrypt
if [ ! -w "/etc/letsencrypt" ] || [ ! -r "/etc/letsencrypt" ] || [ ! -x "/etc/letsencrypt" ] ; then
    echo "[!] ERROR - wrong permissions on /etc/letsencrypt"
    exit 1
fi

我现在想要的是将上述目录的所有者设置为 root 或使用 docker compose/Docker 文件授予 777 权限。

我的 Docker 撰写文件

version: '3'
services:
  bunkerized_nginx:
    image: bunkerity/bunkerized-nginx
    restart: always
    depends_on:
      - express-app
    ports:
      - 80:8080
      - 443:8443

    volumes:
      - ./nginx-bunkerized/:/etc/letsencrypt:rw
    
    #command:
      #- chown root:root /etc/letsencrypt
      #- chmod 777 /etc/letsencrypt
    environment:
      - SERVER_NAME=www.dasun123.ml
      - USE_REVERSE_PROXY=yes
      - REVERSE_PROXY_URL=/
      - AUTO_LETS_ENCRYPT=yes
      - REDIRECT_HTTP_TO_HTTPS=yes
      - REVERSE_PROXY_HOST=http://express-app:3000

  express-app:
    build: .
    environment:
      - PORT=3000

0 个答案:

没有答案
相关问题