We have a solution-wide folder that contains shared settings that each project needs.
I'm trying to copy the contents of that folder to the /app folder, but it's not working.
This is part of my Dockerfile configuration:
FROM mcr.microsoft.com/dotnet/core/sdk:3.1-alpine3.12 AS build
### This is where I'm trying to copy the contents of Shared Settings to /app
WORKDIR '/src/Shared Settings'
COPY '/src/Shared Settings' /app
### This is part of the rest of the docker file, which works fine
WORKDIR /src
COPY . .
WORKDIR /src/OurProject.Server
RUN dotnet restore OurProject.Server.csproj
RUN dotnet build OurProject.Server.csproj -c Release -o /app
What do I need to change to get the contents of Shared Settings copied to the /app folder in my Docker container?
The Dockerfile documentation for the COPY directive notes that it has two forms, a space-separated form and a JSON-array form, and it notes
This latter [JSON array] form is required for paths containing whitespace.
So applying that to your specific path, you would get
COPY ["src/Shared Settings", "/app"]
This is broadly true in a Dockerfile in general: the only quoting in native Dockerfile syntax is to write things in a JSON array. Wrapping a WORKDIR or a COPY command in single quotes isn't documented as having an effect. A string-form RUN or CMD is an apparent exception to this, but only because these commands are run via a shell and there the shell's quoting rules apply.