ジェンキンスは、ドッキングウィンドウ内のLinuxサーバーへの.NETコアアプリケーションを公開します

別のリモート展開ジェンキンス上で行うデモは、デモは人気ジェンキンス+ Gitの+ドッカー連続展開を使用します。

レディーLinuxサーバ

などのデモ、上CentOS7サーバアズール、SSHを使用するために開いているポート22を作成し、5000と5001のポートを開きます。

過去ログCoreインストール

Microsoftの公式ドキュメントに基づいて、インストールするには、次のコマンドを使用して、サーバへのSSH:

sudo rpm -Uvh https://packages.microsoft.com/config/centos/7/packages-microsoft-prod.rpm
sudo yum install dotnet-sdk-3.0

インストールドッカー

この時間は、我々は継続的な展開に基づいてドッキングウィンドウにしたいので、このステップは、公式文書によると、より多くのアウト以前より次のとおりです。

# 卸载旧版本, 因为我是一台新的服务器, 这一步可以不做
sudo yum remove docker \
                docker-client \
                docker-client-latest \
                docker-common \
                docker-latest \
                docker-latest-logrotate \
                docker-logrotate \
                docker-engine
# 安装需要用到的包
sudo yum install -y yum-utils \
                    device-mapper-persistent-data \
                    lvm2
# 设置docker安装仓库地址
sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo
# 安装Docker社区版引擎
sudo yum install docker-ce docker-ce-cli containerd.io

コンフィギュレーション・ジェンキンス

この時間に基づいてデモでは、我々は十分に設定するには、サーバーを追加するために、利用するために配置されています。

建築プロジェクト

  1. フリースタイル・プロジェクトを作成し、名前を簡単に設定ページに入り、その後、OK遊びます。
  2. ソースコード管理でのgitを選択して、次のアドレスリポジトリのURLを記入してください。
https://gitee.com/jerryqi/JenkinsTest.git

そして最後には同じものではありません、地元の建物の中に最後の時間は、サーバーにアップロードした後に、コードをコンパイルして実行し、これを構築するためにドッカーをサーバにアップロードソースコードに、実際には、ここでの円の周りに直接であります私のジェンキンスは、ローカル、それはGiteeローカルコードをダウンロードして、サーバーにアップロードされているため、実際には、サーバは、ジェンキンスにインストールすることができればドッカーを構築するためのスクリプトを実行して、サーバー上で直接Giteeコードを引っ張って。

  1. 以下の操作は、ビルド環境実行します。
    • 勾选ビルドの開始前に、ワークスペースを削除します。
    • 以下の情報を記入し、ビルドの実行後にSSHを介したコマンドを、ファイルを送信したり、実行して確認してください:
キー
名前 あなたの前に、デフォルトのサーバー構成を選択
ソース・ファイル **
Execのコマンド ドッキングウィンドウは、-t jenkinstestを構築します。
ドッキングウィンドウの実行-d -p 80:5000 --name jenkinstestapp jenkinstest

サーバー上でビルドするので、そのタブを構築するためにここに書いていない、もちろん、十分に変更されたDockerfileに対応し、ローカルに構築することができます。

構築物は私の他の記事を参照することができ、サーバー上のドッカー:2ミラードッカーに使用ドッカー・作曲振り付けリリースの.Netコア+ Redisのアプリケーション

Dockerfileを書きます

サーバー上でここにドッカーを実施し、プロジェクトをビルドしているので、我々はDockerfileは、プロジェクトのルートディレクトリに以下の追加します:

# 第一部分是编译并发布项目
# 以微软.Net Core SDK作为基础镜像, 并且以build作为别名
FROM mcr.microsoft.com/dotnet/core/sdk:3.0 AS build
# 切换build镜像工作目录到/app
WORKDIR /app
# 拷贝sln和csproj项目文件
COPY *.sln .
COPY JenkinsTest/*.csproj ./JenkinsTest/
# Restore项目用到的包
RUN dotnet restore
# 拷贝项目文件到镜像里面相应到目录
COPY JenkinsTest/. ./JenkinsTest/
# 切换build镜像工作目录到/app/AliPay
WORKDIR /app/JenkinsTest
# 以Release模式发布应用到out文件夹
RUN dotnet publish -c Release -o out
# 第二部分是启动项目
# 以微软.Net Core运行环境作为基础镜像, 并且以runtime作为别名
FROM mcr.microsoft.com/dotnet/core/aspnet:3.0 AS runtime
# 切换runtime镜像工作目录到/app
WORKDIR /app
# 把build镜像里面编译出来的文件拷贝到runtime镜像
COPY --from=build /app/JenkinsTest/out ./
# 暴漏端口
EXPOSE 5000
# 启动应用
ENTRYPOINT ["dotnet", "JenkinsTest.dll"]

修正

最初のパスはここで走ったときに次のエラーをお勧め:

Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

次のコマンドを通じてドッカーデーモンのステータスを表示します。

sudo service docker status
# ● docker.service - Docker Application Container Engine
#    Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset: disabled)
#    Active: inactive (dead)
#      Docs: https://docs.docker.com

彼のステータスが非アクティブであることを発見、ドッカー次のコマンドを再起動します。

sudo service docker restart

ドッカーデーモンを再度確認し、それがアクティブになることがわかります。しかし、建物はまだ、再びエラーの上に報告されます。

この時間は、私は、サーバー上で直接ドッキングウィンドウのイメージを実行し、次のエラーが見つかりました:

Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.40/images/json: dial unix /var/run/docker.sock: connect: permission denied

これは明らかに力のない問題ではありません、2つの解決策があります

  • 最初のコースはsudoの、シンプルな暴力です。
  • 第二の方法は彼にここで私は2番目を使用し、追加する権限を与えたがあります:
sudo groupadd docker     #添加docker用户组
sudo gpasswd -a $USER docker     #将登陆用户加入到docker用户组中
newgrp docker     #更新用户组
docker imges    #测试docker命令, OK

最後に、されたザ・ITがスタック中止をAPOS場合は、ビルドチェックする必要があり、その後、第一の二次ミラーを引っ張って長くタイムアウト時間を変更すると、デフォルトの3分間は十分ではありませんが。

私は80ポートのサーバーにマップ]ドッキングウィンドウ5000ポートを置くので、あなたが直接サーバーIP成功した訪問にアクセスできるようにし、あなたが行っている、今のビルド!「したRe行って!」行われたRe!

おすすめ

転載: www.cnblogs.com/jerryqi/p/11785604.html