環境 サーバー: centos7 クライアント: ウィンドウ Centos7 に docker+gitlab+gitlab-runner をデプロイし、win10 で ssh 接続を使用します。開発者は、プロジェクト ファイルのアップロード、イメージのパッケージ化、テストの公開と実行を行うためにコードを送信するだけで済みます。 1. Centos7にdockerとdocker-composeをインストールする docker をインストールします: 1. Docker を使用するには、CentOS システムのカーネル バージョンが 3.10 以降である必要があります。このページの前提条件をチェックして、お使いの CentOS バージョンが Docker をサポートしているかどうかを確認してください。 uname -rコマンドを使用して現在のカーネルバージョンを確認します。 $ uname -r 2. $ sudo yum アップデート 3. 古いバージョンをアンインストールします(古いバージョンがインストールされている場合) $ sudo yum 削除 docker docker-common docker-selinux docker-engine 4. 必要なソフトウェア パッケージをインストールします。yum-util は yum-config-manager 機能を提供します。他の 2 つは devicemapper ドライバーに依存します。 $ sudo yum install -y yum-utils デバイスマッパー永続データ lvm2 5. yumソースを設定する $ sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo 6. すべてのリポジトリのすべてのDockerバージョンを表示し、インストールする特定のバージョンを選択できます。 $ yum list docker-ce --showduplicates | sort -r 7. Dockerをインストールする $ sudo yum install docker-ce #リポジトリでは安定版リポジトリのみがデフォルトで有効になっているため、最新の安定版バージョン 17.12.0 がここにインストールされます。 $ sudo yum install <FQPN> # 例: sudo yum install docker-ce-17.12.0.ce エラーの場合: 問題: パッケージ docker-ce-3:19.03.8-3.el7.x86_64 には containerd.io >= 1.2.2-3 が必要ですが、プロバイダーをインストールできません。解決策: https://www.cnblogs.com/suanmiaoup/p/12772140.html 入力: yum install -y https://mirrors.aliyun.com/docker-ce/linux/centos/7/x86_64/edge/Packages/containerd.io-1.2.6-3.3.el7.x86_64.rpm もう一度入力: yum install docker-ce docker-ce-cli containerd.io 8. ブートを開始して参加する $ sudo systemctl dockerを起動します $ sudo systemctl dockerを有効にする 9. インストールが成功したかどうかを確認します (クライアントとサービス部分が存在する場合、Docker のインストールと起動が成功したことを示します) $ docker バージョン 10. Docker イメージ ソースを変更することをお勧めします。 1. daemon.json ファイルを変更または作成します: vi /etc/docker/daemon.json 次の設定をファイルに記述し、保存して終了します (操作方法がわからない場合は、Baidu vi コマンドを試してください)。 { "レジストリミラー": ["http://hub-mirror.c.163.com"] } 2. dockerを再起動します: docker-compose をインストールします。 参考公式サイト: https://docs.docker.com/compose/install/ 1. 次のコマンドを実行して、Docker Compose の最新バージョンをダウンロードします。 sudo curl -L "https://github.com/docker/compose/releases/download/1.23.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose 2. バイナリに実行権限を適用します。 sudo chmod +x /usr/local/bin/docker-compose 2. gitlabイメージの中国語版を取得する アドレス: https://hub.docker.com/r/twang2218/gitlab-ce-zh 1. xshell+xftpを使用して、centos7にログ、設定、データを保存するフォルダを作成します。 フォルダ構造は次のとおりです。 ギットラボ -設定 -ログ -データ ドッカーの作成 2. docker-compose.ymlの使用を開始する バージョン: '3' サービス: gitlab: イメージ: 'twang2218/gitlab-ce-zh:11.1.4' 再起動: 停止しない限り ホスト名: 'gitlab.domain.com' コンテナ名: gitlab 環境: TZ: 「アジア/上海」 GITLAB_OMNIBUS_CONFIG: | 外部URL 'http://gitlab.domain.com/' レジストリ外部 URL 'https://gitlab.domain.com' gitlab_rails['gitlab_shell_ssh_port'] = 1022 gitlab_rails['time_zone'] = 'アジア/上海' # gitlab_rails['smtp_enable'] = true # gitlab_rails['smtp_address'] = "smtp.exmail.qq.com" # gitlab_rails['smtp_port'] = 465 # gitlab_rails['smtp_user_name'] = "[email protected]" # gitlab_rails['smtp_password'] = "パスワード" # gitlab_rails['smtp_authentication'] = "ログイン" # gitlab_rails['smtp_enable_starttls_auto'] = true # gitlab_rails['smtp_tls'] = true # gitlab_rails['gitlab_email_from'] = '[email protected]' ポート: - '80:80' - '443:443' - '1022:22' ボリューム: - ./data:/var/opt/gitlab - ./config:/etc/gitlab - ./logs:/var/log/gitlab サーバーにドメイン名がある場合は、上記の gitlab.domain.com を実際のドメイン名に置き換えてください。 実験中は、簡単にテストできるように 3. gitlab ディレクトリに移動して、docker-compose up -d を実行して起動し、しばらく待ちます。 。 4. 起動が完了したら、ブラウザを開いてgitlab.domain.comにアクセスします。 5. GitLabへのSSH接続 まずSSHキーを取得する必要があるので、 猫 ~/.ssh/id_rsa.pub ssh-rsa で始まる文字が表示された場合は、SSH キーがすでにローカルに存在し、直接使用できることを意味します。そうでない場合は、自分で SSH キーを作成する必要があります。 6. SSHキーを作成する SSH キーを作成するには、次のコマンドを入力します。 ssh-keygen -t rsa -C "[email protected]" -b 4096 完了後、上記の cat コマンドまたは pbcopy を入力して、生成された ssh キーを直接コピーできます。 pbcopy < ~/.ssh/id_rsa.pub GitLab で、[アカウント] - > [設定] に移動し、SSH キーを見つけてこのキーを追加します。 7. SSH接続ポート1022 通常、git コマンドを使用して、デプロイした gitlab に接続できますが、ここでの違いは、コンテナのポート 22 をホストのポート 1022 にマッピングしているため、接続するポートを指定する必要があることです。 ssh -p 1022 [email protected] また、GitLab の設定ファイルで ssh ポートを変更する必要があります (上記で設定されている場合は必要ありません)。変更しないと、GitLab で生成されたプロジェクト接続アドレスが接続されません。 gitlab.rb の設定 gitlab_rails['gitlab_shell_ssh_port'] = 1022 SSH ポートを変更した後、gitlab コンテナを再起動すると、プロジェクトの SSH 接続アドレスは次のようになります。 ssh://[email protected]:1022/test/プロジェクト名.git この時点で GitLab のデプロイは完了です。 3. gitlab-runnerイメージを取得する アドレス: https://hub.docker.com/r/gitlab/gitlab-runner 1. xshell+xftpを使用して、centos7にログ、設定、データを保存するフォルダを作成します。 フォルダ構造は次のとおりです。 GitLabランナー -設定 ドッカーの作成 2. docker-compose.ymlの使用を開始する バージョン: '3' サービス: ランナー: イメージ: 'gitlab/gitlab-runner:v11.4.2' コンテナ名: gitlab-runner 再起動: 常に ネットワーク: -gitlab_デフォルト ボリューム: - ./config:/etc/gitlab-runner - /var/run/docker.sock:/var/run/docker.sock ネットワーク: gitlab_デフォルト: 外部: 真 このうちgitlab_defaultは上記のgitlabのネットワークである 注意: gitlab-runnerのバージョンは、gitlabのバージョンと可能な限り一致している必要があります。一致していないと、gitlabに接続できなくなります。 3. gitlabディレクトリに移動し、docker-compose up -dを実行して起動します。 4. gitlab-runnerを設定してgitlabに接続する 1. gitlab-runnerを登録する docker exec -it gitlab-runner gitlab-runner 登録 2. http://gitlab.domain.com または http://ip:port を入力します。これはローカルにインストールした GitLab です。 3. このランナーのgitlab-ciトークンを入力してください プロジェクト管理エリア->ランナーで見つけることができます(シェアタイプのランナーはここに登録されています) 4.説明を入力します。例: test 5. タグを入力します(空白のままにしておくこともできますが、後で編集することもできます) 6. タグなしの投稿に遭遇したときに実行するかどうかを選択します。trueを選択します 7. このランナーを現在のプロジェクトにロックするかどうかは、falseを選択します。 8. 遺言執行者を選ぶ このステップはより重要です (ssh、docker+machine、docker-ssh+machine、kubernetes、docker、parallels、virtualbox、docker-ssh、shell) Dockerを選択 9. デフォルトのイメージを選択します: docker:stable 登録後、gitlab-ci トークンを取得するための GitLab ページで、登録したランナーを確認できます。 同時に、gitlab-runner/config の下に生成された config.toml ファイルが表示されます。ファイルの内容は次のとおりです。 同時 = 1 チェック間隔 = 0 [[ランナー]] 名前 = "テスト" url = "http://192.168.1.157/" token = "69c0ff735a76c0bb3cce977a361661"#このトークンは、3 番目のステップのトークンに従って gitlab-runner によって生成されます。executor = "docker" [ランナーズ.docker] extra_hosts = ["gitlab.domain.com:192.168.1.157"] #上記の手順でgitlabに接続できない場合は、gitlab-runnerがdocker内でgitlab.domain.comを解決できないためです。これは、tls_verify = falseという設定を追加することで解決できます。 image = "docker:stable" #このイメージを元にdockerなどのツールが入っているため、gitlab-runnerが実行する.gitlab-ci.ymlにdockerの指示がある場合はdockerをインストールする必要がないためです。参考アドレス: https://docs.gitlab.com/ee/ci/docker/using_docker_build.html privileged = false #docker-in-docker を使用する場合は通常 true キャッシュを無効にする = false ボリューム = ["/var/run/docker.sock:/var/run/docker.sock", "/cache"] shm_size = 0 [ランナーズキャッシュ] または、最初に設定しておき、gitlab-runner が実行時に設定ファイルを自動的に読み込むこともできます。 参照アドレス: https://docs.gitlab.com/ee/ci/docker/using_docker_build.html 5. プロジェクトコードを提出してCI/CDを完了する 1. プロジェクトのルート ディレクトリに .gitlab-ci.yml を追加します。プロジェクト コードを送信すると、ファイルが自動的に実行され、プロジェクトがパッケージ化されます。 イメージ: docker:stable 画像: name: docker/compose:1.23.2 # タグを任意のバージョンに更新します。これは、以下のスクリプトが docker-compose を使用しているためです。 エントリポイント: ["/bin/sh", "-c"] 前スクリプト: -docker バージョン -docker-compose バージョン 建てる: スクリプト: #自分の状況に応じて次のスクリプトを記述します - COMPOSE_HTTP_TIMEOUT=200 docker-compose -f docker-compose-efk.yml up -d #これは、私のプロジェクトが docker-compose で配置されているためです - COMPOSE_HTTP_TIMEOUT=200 docker-compose up -d --build --force-recreate 2. Win10のgit経由でコードを送信する プロジェクトのルートディレクトリに移動します。gitがインストールされている場合は、ルートディレクトリでgit bashを直接開いて実行できます。インストールされていない場合は、powershellを開くこともできます。 git init #まだ初期化されていない場合はgit add . #すべてのプロジェクトを追加git commit -m "init" gitに送信 git remote add origin [email protected]:1022/root/test.git #ポートが1022であることに注意してください。これは、上記のgitlabを実行するときに指定されます。これを1回実行するだけです。 git push -u origin master #サーバーgitlabにプッシュします docker+gitlab+gitlab-runner の詳細なデプロイメントに関するこの記事はこれで終わりです。より関連性の高い docker gitlab gitlab-runner デプロイメント コンテンツについては、123WORDPRESS.COM で以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: Vueは携帯電話のカメラとアルバムを呼び出す機能を実装します
>>: MySQL 8.0 のデフォルトのデータディレクトリを変更する (設定なしの簡単な操作)
この記事の例では、動的な時計を実装するためのJS + CSSの具体的なコードを参考までに共有していま...
HTML にオーディオ ファイルを挿入した後 (mp3 ファイルを再生した後) に発生したいくつかの...
目次1. 前処理2. コンパイル3. コンパイル4. リンク1. gccのインストール(Ubuntu...
1. MySQL の権限の概要MySQL には、権限を制御する 4 つのテーブルがあります。user...
目次DOMContentLoadedとロードjs ブロッキングとは何ですか? CSS ブロッキングと...
ウェブページに慣れていない友人の多くは私と同じように、HTML で要素、タグ、属性がどのように定義さ...
数日前、Google Reader で Yu Bo さんが共有した投稿「空のパスがページのパフォーマ...
どの企業もユーザーベースを拡大したいのであれば、ユーザーの操作データを収集・分析する必要があり、その...
会社が現在使用しているソリューションを確認するためにバックエンドにログインしました。使用される FT...
<br />おそらく、あなたは会社に入社したばかりで、その会社が「ユーザビリティ」に関す...
目次定期的に剪定するミラーエビクションコンテナのクリーンアップネットワークソート体積の蒸発完全にクリ...
目次導入複数の異なるハッシュを区別するハッシュチャンクハッシュコンテンツハッシュjs キャッシュの実...
別のライブラリから別のライブラリにデータをインポートする必要がある場合があり、このデータは CSV ...
プロジェクトをプロジェクトサイトのテスト環境にデプロイするJDK1.8トムキャット8.5 Maven...