Docker+Jexus6.2部署ASP.NET站点

时间:2021-01-31 10:51   作者:ChenReal    阅读:282

背景

ASP.NET应用要部署到Linux生产环境,我们一直使用Docker+Jexus。之前用的Jexus版本是v6.1,跑了一年多,非常非常稳定。

然而,最近升级到6.2,还是用回原来的套路去部署,但感觉就没有那么丝滑了。有人说,既然你说6.1“非常非常稳定”,何必折腾6.2,不是闲的蛋疼吗?好吧,顺便说一下,有不得不改用6.2的理由:

因为应用升级NewtonJson到12.03,Jexus v6.1自带的mono6.0并不支持,换成Jexus 6.2的mono 6.8才行。

OK,折腾升级的背景交代完了,那就开始动手吧。

实战

  1. 下载解压,这一步大家都很熟悉了,不用多说什么。
cd /tmp/
wget https://www.linuxdot.net/down/jexus-6.2.x-x64.tar.gz
tar -xf jexus-6.2.x-x64.tar.gz
  1. 编写Dockerfile
  • 我们习惯用ubuntu作为操作系统,当然也可以换成是debian或者centos。
  • 默认时区是UTC+0,所以国内服务器建议换成北京时间
  • 弄了一个启动脚本init.sh (github上抄的),后面会把脚本代码贴出来
FROM ubuntu:18.04

MAINTAINER chenreal <chenreal@qq.com>

RUN apt-get update; apt-get -y upgrade; apt-get -y install tzdata
RUN rm /etc/localtime
RUN ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

ADD /app /var

ADD init.sh /bin

RUN chmod +x /bin/init.sh; apt-get -y autoremove; apt-get -y autoclean; apt-get -y clean

COPY jexus /usr/jexus

EXPOSE 8080

WORKDIR /usr/jexus

ENTRYPOINT [\"/bin/init.sh\"]
  1. 启动脚本init.sh
#!/bin/bash

# Stop your services
function stop_svc {
  /usr/jexus/jws stop >/dev/null 2>&1
  service ssh stop >dev/null 2>&1
  exit
}

# Set the SIGTREM signal response function
trap 'stop_svc' SIGTERM

# Start Your Services

#####################

service ssh start
/usr/jexus/jws start

# Waiting signal

####################

while true
do
  sleep 2
done

结束

这样基本就搞定了,剩下的就是 docker builddocker run 的事情了。

 

评论
0/200