I’m new to Docker so my question may be stupid.
It took me awhile to get my .Net Core 2.2.4 project to work in Docker for Windows, had to rewrite lots of code in Program.cs to pin my SSL certificate to the project. But I tested my localhost.pfx and my domain.pfx and they both work in development. That took awhile to figure out. Now I’m trying to deploy to my production server.
Working with my Linux Production Server
Uploaded my image to Docker Hub, pulled it into my new Unbuntu Bionic Beaver server and it just fails to load and run. The verbose I get seems to be the same as the verbose I get in Docker for Windows on my workstation.
Back to Docker for Windows; maybe I missed something
So I can build my project and it will run in docker for windows using VS2017 V15.0.11. But when I use my compose file, it bombs after creating the project when it goes to test connections. When I try and use the command line “docker run -t -d -p 80:80 -p 5000:5000 -p 5001:443 imageName”, it loads, doesn’t seem to error but I can’t access it in my browser. Maybe I have the ports wrong. I didn’t know how to recreate those ports on the command line.
On the one that works in Docker for Windows when VS2017 loads the debug versiont
Docker PS
“80/tcp, 5000-5001/tcp, 0.0.0.0:5001->443/tcp”
are the ports.
My docker file; I thought perhaps when I ran the container on my Linux server I had to sudo inside the companion containers, thus the commented out lines
FROM microsoft/dotnet:2.2-aspnetcore-runtime AS base
WORKDIR /app
EXPOSE 80 443
EXPOSE 5000 5001FROM microsoft/dotnet:2.2-sdk AS build
WORKDIR /src
COPY [“jkirkerxAngular/jkirkerxAngular.csproj”, “jkirkerxAngular/”]
RUN dotnet restore “jkirkerxAngular/jkirkerxAngular.csproj”
COPY . .
WORKDIR “/src/jkirkerxAngular”
RUN dotnet build “jkirkerxAngular.csproj” -c Release -o /appFROM build AS publish
RUN dotnet publish “jkirkerxAngular.csproj” -c Release -o /appFROM base AS final
WORKDIR /app
COPY --from=publish /app .
ENTRYPOINT [“dotnet”, “jkirkerxAngular.dll”]FROM alpine:latest
#RUN apt-get install sudo
#COPY sudoers /etc/
#RUN apk update && apk add sudo && adduser -u 1000 -G wheel -D alpine && rm -rf /var/cache/apk/*
#USER alpineRUN apk update && apk add ca-certificates && rm -rf /var/cache/apk/*
COPY jkirkerxAngular/jkirkerx.pfx /usr/local/share/ca-certificates/jkirkerx.pfx
COPY jkirkerxAngular/localhost.pfx /usr/local/share/ca-certificates/localhost.pfx
RUN update-ca-certificates
So to figure this out, I figured I should be able to command line my image to run it in a container in my Docker for Windows.
When I use my compose file, the container stops here.
Verbose Output with compose entrypoint: [“sh”, “-c”, “sleep 5000”]
Attaching to jkirkerxAngular
compose.cli.verbose_proxy.proxy_callable: docker events ← (filters={‘label’: [‘com.docker.compose.project=jkirkerxangular’, ‘com.docker.compose.oneoff=False’]}, decode=True)
urllib3.connectionpool._make_request: http://localhost:None “GET /v1.38/events?filters=%7B%22label%22%3A+%5B%22com.docker.compose.project%3Djkirkerxangular%22%2C+%22com.docker.compose.oneoff%3DFalse%22%5D%7D HTTP/1.1” 200 None
compose.cli.verbose_proxy.proxy_callable: docker events → <docker.types.daemon.CancellableStream object at 0x000001C31A463B00>
Side Note:
my .Net Core project is Angular wrapped in .Net Core 2.2.4.
I figured this container testing is testing the companion containers that support the main container, and that’s it’s not testing my internal API’s