实现过程
基本思路就是将IdentityServer4源码上传Github,在服务器上通过Git将源码克隆到本地,然后编写Dockerfile,将服务器的源码路径挂接到Docker容器中,在容器中编译代码,运行应用。
- git地址
https://github.com/example/demo-identityserver4 (伪地址) - 服务器磁盘目录
/home/codebase/demo-identityserver4 - 容器磁盘目录
/codebase
- 登录服务器,将当前路径定位到:
/home/codebase/
- 克隆源码
$ git clone https://github.com/example/demo-identityserver4
$ cd demo-identityserver4
- 创建Dockerfile文件
$ vim Dockerfile
Dockerfile 文件
FROM microsoft/dotnet:sdk
MAINTAINER DAIJINMING@LIVE.CN
VOLUME /codebase ## 用于挂接磁盘
EXPOSE 5000
WORKDIR /codebase/host
ENTRYPOINT ["dotnet","restore"]
ENTRYPOINT ["dotnet","run"]
查看当前路径下的文件
$ ls
Dockerfile host IdentityServer4.AspNetIdentity.sln README.md src
host 中是主程序,具体可参考搭建IdentityServer4
- 构建镜像
$ docker build -t djm/idsrv4 .
-t 标识标签
. 句号,当前目录下的Dockerfile 文件
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
djm/idsrv4 latest 5ec1cff7f418 27 minutes ago 1.73GB
运行容器
docker run --name identityserver4 -p 5000:5000 -v /home/codebase/refine-identityserver4:/codebase djm/idsrv4
--name 容器的名字定义(不能重复)
-p 端口号映射
-v 磁盘挂接
这里没有加 -d 后台运行的参数,方便查看初次运行时监测问题。