zoukankan      html  css  js  c++  java
  • Linux上用Jexus部署Asp.Net网站:常规部署与Docker部署

    (一)常规部署

    一、 jexus压缩包下载到linux临时文件夹中。

    cd /tmp
    
    wget linuxdot.net/down/jexus-6.2.x-arm64.tar.gz

    不同的操作系统红色部份对应的包不一样,也可以手动下载安装包,上传到linux目录,手动解压,进 https://www.linuxdot.net/ 下载相关的版本

    二、解压文件

        

    tar -zxvf jexus-5.8.1-x64.tar.gz

    解压完成后,会在/tmp中得到一个jexus文件夹。

    三、移动

        jexus文件夹移动或复制到一个指定的工作位置,这个位置你自己决定,建议大家统一使用/usr路径。

    sudo mv jexus /usr

    然后清理/tmp中的jexus:

    sudo rm -rf /tmp/jexus

    四、修改配置文件 指定网站目录跟端口

    vi  /usr/jexus/siteconf/default

     修改port 跟root

    五、把发布好的程序文件上传到配置文件root指定的目录

    六、 重启jws服务

    cd  /usr/jexus
    
    sudo ./jws restart

    七、验证是否成功

      

      curl  localhost:port

     

    (二)docker部署

    一,把Dockerfile文件和init.sh文件放到linux主机的某个文件夹中,然后进入这个文件夹。(文件内容见内容尾部)

    二,构建镜像:

        

    sudo docker build -t jexus:v6 .

        (注意,这行命令最后有一个空格+英文“.”号)

    三,生成和运行容器:

       

     sudo docker run -d -p 8901:80 -p 8902:22 -v /var/www:/var/www --name jexus jexus:v6

        (注:意思是将容器的8022端口映射到主机的80802222端口,以便外部访问;这个容器的名字叫“jexus ,-v 把容器内的目录挂载到host,不然每次删除镜像会把网站文件删除掉)

        (如果容器内网站要用https协议或者需要向外提供StateServer服务,还需分别将容器内44342424端口映射到主机)

    四,检查运行情况:

       

     sudo docker ps -a

    五,检查容器中jexus服务情况:

        

    sudo curl localhost:8901

    六、从主机进入容器,在容器内进行某些操作(比如修改httpd_config文件允许root登入等)

        进入:sudo docker exec -it jexus /bin/bash

        退出:exit

    七、安装字体(不然有些程序内有调用font的会出问题比如验证码)

    1、window系统拷贝字体文件到容器里面的目录下【/usr/share/fonts/truetype】(从linux拷备到容器里面的方法:docker cp linux目录】 容器id:【容器里面的目录】

    2、执行mkfontscale 命令不存在 执行apt install xfonts-utils

    3、执行mkfontdir

    4、执行fc-cache -fv 命令不存在 执行apt install fontconfig

    5、重启容器

    八、Dockerfile内容如下:

       FROM ubuntu:latest
    
    MAINTAINER Yunei.Liuyun <j66x@163.com>
    
     
    
    RUN apt-get update; apt-get -y upgrade; apt-get -y install wget curl ssh vim yum php-cgi libx11-dev libfreetype6-dev libexpat-dev libglib2.0-bin
    
    RUN curl https://jexus.org/release/arm64/install.sh|sh
    
     
    
    # RUN sed -i -e 's/^PermitRootLogin prohibit-password/PermitRootLogin yes/g' /etc/ssh/sshd_config
    
     
    
    ADD init.sh /bin
    
    RUN chmod +x /bin/init.sh; apt-get -y autoremove; apt-get -y autoclean; apt-get -y clean
    
     
    
    EXPOSE  22 80 443 42424 8901 8902 8903 8904
    
     
    
    ENV TERM="xterm"
    
    WORKDIR /usr/jexus
    
     
    
    ENTRYPOINT ["/bin/init.sh"]

    九、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
    
     

     

    十、完成

  • 相关阅读:
    《游牧者的抉择》读后感 读书笔记
    《白噪音》读后感 读书笔记
    《远大前程》读后感 读书笔记
    《D.H.劳伦斯传》读后感 读书笔记
    《活出心花怒放的人生》读后感 读书笔记
    《三千佛塔烟云下》读后感 读书笔记
    python之第三方模块安装
    python之实现循环查看指定路径下的所有文件---os.walk
    python之递归
    python之MD5加密
  • 原文地址:https://www.cnblogs.com/chenqingbin/p/13897007.html
Copyright © 2011-2022 走看看