xml地图|网站地图|网站标签 [设为首页] [加入收藏]
获取当前模块句柄,Sh脚本一点自己的总结
分类:操作系统

初始化git

HMODULE getCurrModuleHandle()
{
MEMORY_BASIC_INFORMATION info;
::VirtualQuery((LPCVOID)(&getCurrModuleHandle), &info, sizeof(info));

从.netCore开源项目来看,eShopOnContainers来说,它的部署是跨平台的,可以部署在linux,docker上,在linux上运行它也可以写一些集成的小脚本,这是微信工程师为我们提供一个部署发布方案的SH脚本

配置git

  • 使用Git的第一件事就是设置你的名字和email,这些就是你在提交commit时的签名,每次提交记录里都会包含这些信息。使用git config命令进行配置
[root@bogon ~]# git config --global user.name "xiangcl"
[root@bogon ~]# git config --global user.email "xiangcl_cs@qq.com"
  • 执行了上面的命令后,会在家目录(/root)下建立一个叫.gitconfig的文件(该文件为隐藏文件,需要使用ls -al查看到). 内容一般像下面这样,可以使用vim或cat查看文件内容:
[root@bogon ~]# cat .gitconfig
[user]
name = xiangcl
email = xiangcl_cs@qq.com
  • 上面的配置文件就是Git全局配置的文件,一般配置方法是git config --global <配置名称> <配置的值>

  • 如果你想使项目里的某个值与前面的全局设置有区别(例如把私人邮箱地址改为工作邮箱),你可以在项目中使用git config命令不带--global选项来设置. 这会在你当前的项目目录下创建.git/config,从而使用针对当前项目的配置。

return (HMODULE)info.AllocationBase;
}

#!/bin/bash
declare -a projectList=(
    '../src/Services/Catalog/Catalog.API'
    '../src/Services/Basket/Basket.API'
    '../src/Services/Ordering/Ordering.API'
    '../src/Services/Identity/Identity.API'
    '../src/Web/WebMVC'
    '../src/Web/WebSPA'
    '../src/Web/WebStatus'
)

# Build SPA app
# pushd $(pwd)../src/Web/WebSPA
# npm run build:prod

for project in "${projectList[@]}"
do
    echo -e "e[33mWorking on $(pwd)/$project"
    echo -e "e[33mtRemoving old publish output"
    pushd $(pwd)/$project
    rm -rf obj/Docker/publish
    echo -e "e[33mtRestoring project"
    dotnet restore
    echo -e "e[33mtBuilding and publishing projects"
    dotnet publish -o obj/Docker/publish
    popd
done

# remove old docker images:
images=$(docker images --filter=reference="eshop/*" -q)
if [ -n "$images" ]; then
    docker rm $(docker ps -a -q) -f
    echo "Deleting eShop images in local Docker repo"
    echo $images
    docker rmi $(docker images --filter=reference="eshop/*" -q) -f
fi

# No need to build the images, docker build or docker compose will
# do that using the images and containers defined in the docker-compose.yml file.

配置GitHub

上面的解决主要体现了发布时用的一些命令,如数组,遍历,条件语句,删除文件,发布语句等,我自己写练了练手

注册GitHub

后续有时间另写一篇教程,这里不在赘述...

declare -a arr=(1
2
3
4
5
)
for i in "${arr[@]}"
do 
if [ $i == 2 ]
then
   echo "a is equal to 2"
else
   echo "a is not equal to 2"
fi

done


declare -a projectList=(
    '../src/Services/Catalog/Catalog.API'
    '../src/Services/Basket/Basket.API'
    '../src/Services/Ordering/Ordering.API'
    '../src/Services/Identity/Identity.API'
    '../src/Web/WebMVC'
    '../src/Web/WebSPA'
    '../src/Web/WebStatus'
)

for project in "${projectList[@]}"
do
    echo -e "e[33m工作在目录 $(pwd)/$project"
    echo -e "e[33mtRemoving old publish output"
done

配置Git

  • 在本地创建ssh key:
ubuntu@VM-0-26-ubuntu:~$ sudo ssh-keygen -t rsa -C "xiangcl_cs@qq.com"
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:Ia1lou/M0ZNnLW6Dly9+Ws1kX89Uq5eF9wUBgFGChDA xiangcl_cs@qq.com
The key's randomart image is:
+---[RSA 2048]----+
|  E. o..o+o....  |
|   .. ....     . |
|      o =     . .|
|     . * .     oo|
|    . . S     +.*|
|     . . . . =.=B|
|      o +.+.o.oo=|
|     + ..=*o. .  |
|      +  ++*.    |
+----[SHA256]-----+

显示如上则表示创建成功。注意,上面命令中的邮箱"xiangcl_cs@qq.com"请更换为自己的邮箱,后面密钥设置密码,这里我无需设置,直接一路回车就行。

  • 设置成功会在 /root/ 下生成一个.ssh文件,因为要进入 /root 目录,所以需要转为root身份:
ubuntu@VM-0-26-ubuntu:~$ sudo -s
root@VM-0-26-ubuntu:~# cd /root
root@VM-0-26-ubuntu:/root# cd .ssh/
root@VM-0-26-ubuntu:/root/.ssh# ls -l
total 8
-rw------- 1 root root 1675 May 18 16:14 id_rsa
-rw-r--r-- 1 root root  399 May 18 16:14 id_rsa.pub
  • 打开id_rsa.pub,复制里面的key
  • 然后粘贴至GitHub,Settings/SSH and GPG keys/New SSH key
  • 使用 ssh -T git@github.com 验证是否安装成功
root@VM-0-26-ubuntu:~# ssh -T git@github.com
The authenticity of host 'github.com (192.30.253.112)' can't be established.
RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'github.com,192.30.253.112' (RSA) to the list of known hosts.
Hi xiangcl! You've successfully authenticated, but GitHub does not provide shell access.

按提示输入yes,看到You've successfully authenticated, but GitHub does not provide shell access则表示连接成功。

大家在写SH文件时要注意,linux与windows的回车符不一样,我们可以下载notepad++这个工具来进行转码。

获取一个Git仓库

既然我们现在把一切都设置好了,那么我们需要一个Git仓库。有两种方法可以得到它:一种是从已有的Git仓库中clone (克隆,复制);还有一种是新建一个仓库,把未进行版本控制的文件进行版本控制。

本文由澳门新葡亰手机版发布于操作系统,转载请注明出处:获取当前模块句柄,Sh脚本一点自己的总结

上一篇:没有了 下一篇:没有了
猜你喜欢
热门排行
精彩图文