Skip to content
This repository was archived by the owner on Feb 2, 2026. It is now read-only.
This repository was archived by the owner on Feb 2, 2026. It is now read-only.

Docker support #121

Closed
Closed

Description

@NTurakulov

Hey guys!
I tried to pack the project into docker to make it easy to deploy and faced some problems, maybe some one could help here. Changes published to docker branch

Requirement
Make it easy to deploy Identity Server Admin to use it in different apps as a part of micro service architecture. I saw somewhere in the feed that @skoruba planned to pack the project into NuGet but I think docker another way to make it portable

Solution
Pack the project (Admin and STS) into docker images and run them at any time with required port inside your cluster

Implementation
I added two Dockerfiles in target project folders, docker-compose.yml in root plus several powershell scripts in the folder with same name. It works but made dummy. To start run containers - run 'run-docker.ps1' script or execute commands from it one by one (for non-Windows platforms).

SQL server is also packed into an image and run as a part of compose with persistent external volume (skoruba-identityserver-sql). All three containers (SQL, STS, Admin) work within same docker network (skoruba-identityserver-network) and can interact with each other

Note

  • Admin project port 80 is mapped to host's port 5001 instead of 9000
  • MS SQL container's port 1433 is mapped to host's 14333! This made for compatibility with MS SQL instance on the host

Problems

  • Dependency projects are not packed as NuGet and cannot be restored with 'dotnet restore'. Because of that instead of using single multi step Dockerfile I build it on host then just copy to aspnetcore-runtime image. This can be solved with modified Dockerfile which copies 'bin' folder with dependencies but prebuild on host is required anyway. Also projects use 'npm install' which is not preinstalled into default aspnetcore-sdk build image.
    • As dotnet CLI calls required before 'docker build' they're packed into build-docker-*.ps1 scripts
  • I've added DockerRelease config file with overriden parameters but they don't apply so duplicated in docker-compose.yml and passed with 'environment'
  • While STS and Admin containers can use short docker-compose.yml service names when reference to sql container successfully I can't access to sts/.well-known/openid-configuration from within Admin project
  • Don't know how to apply EF migrations from within container. Before building docker image DbContext reference to host DB, after running a container not sure how to do that. Maybe something like 'EXEC dotnet ef database update'? Need to try this way
  • Both projects are configured to run in 'Development' environment because certificate for HTTPS is not set up

Activity

  1. NTurakulov commented on Nov 23, 2018

    @NTurakulov
    Author

    Accidentally I pushed changes into branch in my fork. I guess there should be a way to cherry pick them here?

  2. self-assigned this
    on Nov 27, 2018
  3. skoruba commented on Nov 27, 2018

    @skoruba
    Owner

    Hi @NTurakulov
    Thank you for your effort to run this admin in docker. I don't have any experience with docker yet.
    How can I help you with better preparing this project to running in docker?
    Thanks!

  4. NielsOldenburg commented on Dec 4, 2018

    @NielsOldenburg

    Hey Guys,
    we are on the verge of trying something similar. Unfortunately i'm just starting to work with docker, so right now i might not be the best judge for this, but our software architect told me that splitting your solution in two different repos would make it easier to put the id4 server and the administration service in two different docker containers.

    So far i have forked your repo and split it up, but that increases the complexity. Maybe a first step could be to split your solution up @skoruba . @NTurakulov since you are obviously more experienced with docker, would that help or is there a way to run both, the id4 server and the admin service from the same container?

    I'll get back to you once i get my basic docker experiments runnning.

  5. skoruba commented on Dec 27, 2018

    @skoruba
    Owner

    @Seaear - add support for docker - #132 - please take a look.
    Thanks!

  6. pinned this issue on Jun 19, 2019
  7. brinehart commented on Jan 9, 2020

    @brinehart

    So it looks like this functionality was merged. Should the main readme be updated to check off the Docker Support box and add instructions to run the project with Docker?

  8. skoruba commented on Jan 9, 2020

    @skoruba
    Owner

    For sure, I am working on it.

  9. brinehart commented on Jan 9, 2020

    @brinehart

    Please let me know if you would like any help on that.

  10. skoruba commented on Jan 24, 2020

    @skoruba
    Owner

    I am closing this issue, it was released in master branch.

  11. unpinned this issue on Jan 25, 2020
  12. thylux commented on Feb 15, 2020

    @thylux

    Hi, I'm trying to run a demo from source using docker compose on Visual Studio but I can't login because login on database failed.
    Isn't this supposed to work without changing configuration?

    If not maybe I can help to complement the documentation for that.

    image

  13. thylux commented on Feb 15, 2020

    @thylux

    So far I can see that there is connectivity between the 3 docker instances and that the login settings all match up.

    image

    image

    image

    image

  14. thylux commented on Feb 17, 2020

    @thylux

    Well, I tried again today and without any change all is working!

    Off and On again

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions