如何解决在容器之间共享文件卷引发权限错误
我有以下设置:
- (Symfony) PHP 8.0 后端
- (Angular12) Javascript 前端
在一个表单中,我将一个 Base64 编码的文件发送到操作和保存文件的后端。在前端,我想显示保存的文件。
我不确定在不发布我的 Dockerfiles 和 docker-compose 的情况下会显示设置
后端图片:
FROM PHP:8.0-fpm
...
# Create Folder for Uploaded Data
RUN mkdir -p /usr/src/upload
copY --chown=1000:1000 apps/frontend/src/assets/images/upload /usr/src/upload
workdir /usr/src/app
# copy the source to the Container
copY --chown=1000:1000 apps/backend /usr/src/app
...
前端图片
FROM node:12.19 as build
...
# set working directory
workdir /app
...
# add app
copY apps/frontend /app
...
# base image
FROM Nginx:1.19.6-alpine
# copy artifact build from the 'build environment'
copY --from=build /app/dist /usr/share/Nginx/html
RUN chown Nginx:Nginx /usr/share/Nginx/html/*
在容器中,我拥有 ls -l /usr/src
drwxrwxrwx 1 root root 4096 Jun 15 15:30 app
-rw-r--r-- 1 root root 10755796 Mar 6 03:06 PHP.tar.xz
-rw-r--r-- 1 root root 858 Mar 6 03:06 PHP.tar.xz.asc
drwxr-xr-x 1 root root 4096 Jun 15 15:30 upload
我的 Docker Compose 为了能够从前端访问文件,我将后端文件夹挂载到前端资产。但是,我认为错误发生在此之前:
version: '3.8'
services:
...
Nginx:
image: Nginx:1.19.6-alpine
restart: on-failure
volumes:
- './apps/backend/public/:/usr/src/app'
- './apps/frontend/src/assets/images/upload/:/usr/src/upload'
- './docker/Nginx/backend.conf:/etc/Nginx/conf.d/default.conf:ro'
ports:
- 8002:80
depends_on:
- PHP
PHP:
build:
context: .
dockerfile: docker/PHP/Dockerfile
volumes:
- './apps/backend/:/usr/src/app'
restart: on-failure
user: 1000:1000
env_file:
- .env.docker
networks:
default:
$monthYear = new DateTime();
$path = $folder . '/' . $monthYear->format('Y-m');
if (!$this->filesystem->exists($path)) {
$this->filesystem->mkdir($path);
}
这给了我
未能创建“/usr/src/upload/2021-06”:mkdir():权限被拒绝
我哪里错了?任何提示高度赞赏!
// 编辑 随着
RUN mkdir -p /usr/src/upload
RUN chmod -R 777 /usr/src/upload
权限错误消失,图像被上传。但是,它们不在本地 Volume 中?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。