zoukankan      html  css  js  c++  java
  • 使用Xftp&Xshell 工具进行文件上传与运行webapi

    前言:

      由于我们平时在开发微服务的时候,都是在windows 或者mac上开发的,开完完成一些功能,需要发布到服务器上进行提测。今天,我主要介绍两个工具来说明一下如何上传以及把程序跑起来。

    正文:

    准备工作:

      1、Xftp 6工具 ,下载地址:https://www.netsarang.com/zh/xftp/

      2、Xshell 6 工具,下载地址:https://www.netsarang.com/zh/xshell/

    咱们先通过VS 2019创建一个webapi项目,等下好发布到CentOS服务器演示

     

     

     创建完成之后,我就创建了一个UserController控制器,里面创建了一个User类,并且在构造函数中,初始化了一个私有用户列表对象数据,方便我们在调用接口的时候测试用。

    准备工作完成,咱们就先来发包,等下使用工具上传到CentOS服务器上

     

     

     

     最后执行“发布”即可。

    使用Xftp连接服务器(192.168.217.129),这个服务器的搭建,我在前面几篇文章中已经搭建过了,这里就不再赘述了,如果有需要的伙伴,可以去《在VMWare上安装CentOS&Linux教程》查看一下。

     第一次连接,可能会出现如下安全警告,我们选择“接收并保存”即可。

    接下来,咱们通过Xftp工具。把刚才发布好的包上传到服务器的指定文件夹下(MicroService 文件夹是自己创建的)

     下面是重点,仔细品

    我们先准备两个文件(webapi.dockerfile 和 docker-compose.yml)

     下面是webapi.dockerfile文件里面的详细内容:

    # 基于.net core 3.1
    FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-alpine
    # 将本地文件夹挂载到当前容器
    VOLUME /tmp
    # 复制文件到容器
    COPY ./webapi /app/
    WORKDIR /app
    # 声明需要暴露的端口
    EXPOSE 6666
    # 配置容器启动后执行的命令
    ENTRYPOINT ["dotnet", "yuyoho.WebApi.dll"]

    .dockerfile 文件的一个详细说明,请移步至官网进行查阅其含义《Dockerfile解释

      

    下面是docker-compose.yml文件的详细内容:

    version: "3.6"
    
    services:
    
      id-service:
        build: 
          context: ./
          dockerfile: webapi.dockerfile
        ports:
          - "6666:6666"
        environment:
          - ASPNETCORE_URLS=http://*:6666
          - workid=1
          - eureka:instance:ipAddress=192.168.217.129
          - eureka:instance:port=6666
        volumes:
          - ./log/webapi:/app/Log4net

    有关docker-compose.yml 文件的讲解,我就不出系列文章了,有不明白的地方,请移步到《docker-compose.yml的使用》这里查看详细

     到此,咱们就准备就绪了,接下来,咱们就开始使用Xshell工具,连接服务器进行启动微服务

     

     咱们先切到对应目录

    在这之前,咱们先安装一下docker-compose 命令

    具体安装可以参考官方文档,也可以直接使用如下命令,都是从官网copy下来的。 

    [root@yuyoho MicroService]# sudo curl -L "https://github.com/docker/compose/releases/download/1.26.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
      % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                     Dload  Upload   Total   Spent    Left  Speed
    100   638  100   638    0     0    438      0  0:00:01  0:00:01 --:--:--   438
    100 11.6M  100 11.6M    0     0   144k      0  0:01:22  0:01:22 --:--:--  133k
    [root@yuyoho MicroService]# sudo chmod +x /usr/local/bin/docker-compose
    [root@yuyoho MicroService]# docker-compose --version
    docker-compose version 1.26.1, build f216ddbf
    [root@yuyoho MicroService]# 
    

      

    下面是详细的构建及启动过程

    [root@yuyoho MicroService]# docker-compose build webapi
    Building webapi
    Step 1/6 : FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-alpine
    3.1-alpine: Pulling from dotnet/core/aspnet
    df20fa9351a1: Pull complete
    ca1688c5bf4a: Pull complete
    777cb091de55: Pull complete
    bce8880f9e16: Pull complete
    Digest: sha256:a0944fc49430cb7b3980055dfdefcbe5b36fa5c21d8db6e68ba36cf57f54593b
    Status: Downloaded newer image for mcr.microsoft.com/dotnet/core/aspnet:3.1-alpine
     ---> 4213a3f7e30c
    Step 2/6 : VOLUME /tmp
     ---> Running in 72977ea81356
    Removing intermediate container 72977ea81356
     ---> 64869e57d313
    Step 3/6 : COPY ./webapi /app/
     ---> c12899be6b05
    Step 4/6 : WORKDIR /app
    Removing intermediate container ae7f8a02209c
     ---> eacbf02e6b8e
    Step 5/6 : EXPOSE 6666
     ---> Running in 300076e0299f
    Removing intermediate container 300076e0299f
     ---> 47078d714d4d
    Step 6/6 : ENTRYPOINT ["dotnet", "yuyoho.WebApi.dll"]
     ---> Running in 02bd03eb4098
    Removing intermediate container 02bd03eb4098
     ---> 3157f66cef8e
    
    Successfully built 3157f66cef8e
    Successfully tagged microservice_webapi:latest
    [root@yuyoho MicroService]# docker-compose up -d webapi
    Creating network "microservice_default" with the default driver
    Creating microservice_webapi_1 ... done
    [root@yuyoho MicroService]# 
    

    我们查看下是否已经正在运行

    [root@yuyoho MicroService]# docker ps
    CONTAINER ID        IMAGE                 COMMAND                  CREATED             STATUS              PORTS                               NAMES
    e36f8e258d73        microservice_webapi   "dotnet yuyoho.WebAp…"   2 minutes ago       Up 2 minutes        0.0.0.0:6666->6666/tcp              microservice_webapi_1
    5bbcc794f9ea        mysql:latest          "docker-entrypoint.s…"   14 hours ago        Up 14 hours         0.0.0.0:3306->3306/tcp, 33060/tcp   mysql  

      

    可以看出,已经正在运行了,那我们现在就在主机上访问下看看,到底是什么效果

    什么原因呢,使我们的防火墙没开放端口,因此,我们使用如下命令开放一下

    [root@yuyoho MicroService]# sudo firewall-cmd --zone=public --list-ports
    5050/tcp
    [root@yuyoho MicroService]# firewall-cmd --zone=public --add-port=6666/tcp --permanent
    success
    [root@yuyoho MicroService]# sudo firewall-cmd --reload
    success
    [root@yuyoho MicroService]# 
    

    最后,咱们通过Postman进行接口测试

     

    结束:

       前方的路很艰辛,但是沿途的风景很美丽。好好享受过程吧

  • 相关阅读:
    deepin 系统更新命令
    安装mongdb
    读model所得
    上周某一天
    在项目中直接执行里面的文件
    数据库(六)
    数据库(五)
    数据库(四)
    数据库(三)
    数据库(二)
  • 原文地址:https://www.cnblogs.com/yuyoho/p/13220816.html
Copyright © 2011-2022 走看看