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.