Heroku Docker部署USER无法写入磁盘,无法穿梭

时间:2019-12-22 07:33:21

标签: python linux docker heroku file-permissions

据我所知,不可能以非root用户身份在部署在heroku上的docker容器内写入磁盘(创建非root用户并通过dockerfile整理目录在我的本地机器上工作正常)

我正在尝试创建一个简单的api,以提取视频,使用ffmpeg处理它们并存储它们。 FFMPEG需要其输出使用磁盘路径(我尝试使用s3预签名的url,但它们不适用于输出多个动态命名文件的HLS)。

容器在本地部署和运行精美……

Heroku以非root用户身份运行docker build指令,但是挂载的卷仍然是root所拥有,并且无法由应用程序中执行命令的用户写入。

创建容器的文件结构后,我不知道如何更改目录权限。通过执行heroku.yml,构建管道会在github部署上自动开始,并且那里的权限都不够。

在将docker部署到heroku时,人们不只是完全放弃使用本地磁盘 ,对吗?

这是我的heroku.yml:

build:
  docker:
    web: ./web/Dockerfile
  config:
    LC_ALL: C.UTF-8
    LANG: C.UTF-8
run:
  worker:
    command:
      - rq worker --url redis://redistogo:xxxxxx/ my_queue
    image: web

和显着的dockerfile(请注意chmod和chown在本地可以正常工作):

FROM ubuntu:18.04
WORKDIR /usr/src/app
COPY requirements.txt .
RUN pip3 install --no-cache-dir -r requirements.txt
COPY . .
RUN adduser -q worker
# RUN chmod -R 0777 /usr/src/app # fails with insufficient permission
# RUN chown -R worker /usr/src/app # fails with insufficient permission
USER worker

0 个答案:

没有答案