部署在 EC2 Amazon Linux 上时,Docker 应用程序无法写入已安装的文件夹

问题描述 投票:0回答:1

在我的 Windows 电脑上的 Docker 桌面上,应用程序可以写入其安装的文件夹。

在 ec2 amazon linux 上,我使用

docker-compose up

构建容器

它们运行正常,但是当它们尝试将文件写入已安装的文件夹时,它会得到

permission denied

我使用了

sudo docker exec -it containerId sh
并看到:

whoami
返回
app

ls -l MountedFolder/
显示我要使用此属性写入的文件夹

drwxr-xr-x 2 root root

我的 compose.yaml:

services:                  
  webapp1:
    build: 
      context: ./Store
      target: final        
    ports:
      - 8082:8080     
    volumes:
      - ./volumes/App_Data/:/app/App_Data          
    container_name: webapp1 

Dockerfile

# syntax=docker/dockerfile:1

FROM --platform=$BUILDPLATFORM mcr.microsoft.com/dotnet/sdk:8.0-alpine AS build

COPY . /source

WORKDIR /source/WebUI

ARG TARGETARCH

RUN --mount=type=cache,id=nuget,target=/root/.nuget/packages \
    dotnet publish -a ${TARGETARCH/amd64/x64} --use-current-runtime --self-contained false -o /app

FROM mcr.microsoft.com/dotnet/aspnet:8.0-alpine AS final
WORKDIR /app

COPY --from=build /app .

USER $APP_UID

ENTRYPOINT ["dotnet", "WebUI.dll"]
linux docker amazon-ec2 permissions docker-volume
1个回答
0
投票

不确定这是否是一个好的解决方案,但这就是我现在所拥有的。

我向我将安装的所有文件夹授予权限:

sudo chmod -R a+rw /App_Data

此后我打电话

sudo docker-compose up

并且 docker 容器应用程序不再出现权限被拒绝的错误

© www.soinside.com 2019 - 2024. All rights reserved.