WTM(ASP.NET 5)部署到docker,并解决验证码无法显示问题
WTM项目通过官网生成的项目,自带dockerfile。翻开查看是需要先上传代码到服务器,编译并发布源码然后制作镜像(docker image)。有些小伙伴估计和我一样,不太愿意源码直接传服务器。那么我们就写一个发布后,直接制作镜像的dockerfile。一、添加dockerfile并修改在web项目中添加docker支持,选择liunx。添加的dockerfile将属性设置为始终复制。具体doc
WTM项目通过官网生成的项目,自带dockerfile。翻开查看是需要先上传代码到服务器,编译并发布源码然后制作镜像(docker image)。有些小伙伴估计和我一样,不太愿意源码直接传服务器。那么我们就写一个发布后,直接制作镜像的dockerfile。
一、添加dockerfile并修改
在web项目中添加docker支持,选择liunx。添加的dockerfile将属性设置为始终复制。
具体dockerfile文件修改为
#See https://aka.ms/containerfastmode to understand how Visual Studio uses this Dockerfile to build your images for faster debugging.
# 环境运行时基础镜像
FROM mcr.microsoft.com/dotnet/aspnet:5.0-buster-slim AS base
#安装验证码处理库
RUN apt-get update
RUN apt-get install libgdiplus -y
#将当前目录内容 copy到镜像目录
COPY . /wtm
#设置工作目录
WORKDIR /wtm
#对外暴露端口
EXPOSE 80
#运行镜像入口命令和可执行文件名称
ENTRYPOINT ["dotnet", "PGSqlTest.dll"]
mcr.microsoft.com/dotnet/aspnet:5.0-buster-slim 这个基础镜像如果一开始没有也不用去管,制作镜像的时候docker会自己去拉取。
RUN apt-get update
RUN apt-get install libgdiplus -y
这两句就是给镜像安装上验证码的处理库。
二、制作WTM镜像并运行容器
1.构建镜像
项目发布后,将dockerfile文件拷贝到发布目录中,并将目录cd到部署目录,使用下面的命令构建镜像
#docker build -t <镜像名称> <目录> .为当前目录
docker build -t wtmdemo .
命令执行完成后,出现Successful,就代表镜像制作成功。

docker inmages查看镜像

2.运行镜像
镜像构建完成后,使用以下命令来运行镜像容器
#docker run --name=<容器名称> -d<后台运行> -p <外部暴露端口>:<容器端口> <关联镜像>
docker run --name=dockerdemo -d -p 8080:80 wtmdemo:latest
如下图成功执行,docker ps查看运行容器

3.访问页面验证是否发布成功

4、设置容器开机启动
docker update --restart=always (自己docker产生的id)
更多推荐
所有评论(0)