使用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进行接口测试

 

结束:

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

posted @ 2020-07-02 15:00  yuyoho  阅读(746)  评论(0编辑  收藏  举报