楽しみのためにArgoトンネルと容器で単純なポートフォリオを展開すること🚀 - 第2部
たった今、私が最終的にこれのパート1でされる今、パート2はここです!
現在、あなたはCloudflare ArgoトンネルとGitlabランナーを走らせなければなりません.
これは私の
$ serverchenユーザ-ユーザのssh login $ servertle IP -これらのコンテナを実行するVM $ WebCloud name - を維持したいコンテナ名 $ pkstra key -サーバにsshを使用する秘密キー. に追加できます.
gitlab変数に関する更なるドキュメンテーションは、here
今すぐに進んで、このファイルをリポジトリにコミットします.
ビルドが正常に終了すると、次のように表示されます.
パイプラインがビルドされた後、コンテナはホスト上で実行されます
私の次の目標は、完全にDockerインターフェースなしでPodmanを使用するGitLabのためのカスタム実行者を作成することです.
現在、あなたはCloudflare ArgoトンネルとGitlabランナーを走らせなければなりません.
$ podman ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
31f46243cbe9 docker.io/gitlab/gitlab-runner:alpine run --user=gitlab... 8 days ago Up About an hour ago gitlab-runner
$ systemctl --user status cloudflared
Loaded: loaded (/home/leon/.config/systemd/user/cloudflared.service; enabled; vendor preset: enabled)
Active: active (running) since Sun 2021-10-10 14:51:26 IST; 1h 8min ago
GITLAB CI/CDで作業するには、.gitlab-ci.yml
を追加する必要があります.これはプロジェクトのルートフォルダにあります.これは私の
.gitlab-ci.yml
のようです.stages:
- publish
- deploy
variables:
TAG_LATEST: $CI_REGISTRY_IMAGE/$CI_COMMIT_REF_NAME:latest
TAG_COMMIT: $CI_REGISTRY_IMAGE/$CI_COMMIT_REF_NAME:$CI_COMMIT_SHORT_SHA
# Begin building the image
publish:
image: quay.io/podman/stable:latest
stage: publish
tags:
- publish
script:
- podman build -t $TAG_COMMIT -t $TAG_LATEST .
- podman login -u gitlab-ci-token -p $CI_BUILD_TOKEN $CI_REGISTRY
- podman push $TAG_COMMIT
- podman push $TAG_LATEST
# Deployment
deploy:
image: alpine:latest
stage: deploy
tags:
- deployment
before_script:
- apk update && apk add openssh-client
- mkdir -p ~/.ssh
- chmod 700 ~/.ssh
- eval $(ssh-agent -s)
- echo "${PK_KEY}" |tr -d '\r' | ssh-add -
- ssh-keyscan $SERVER_IP
script:
- ssh -o StrictHostKeyChecking=no $SERVER_USER@$SERVER_IP "podman login -u gitlab-ci-token -p $CI_BUILD_TOKEN $CI_REGISTRY"
- ssh -o StrictHostKeyChecking=no $SERVER_USER@$SERVER_IP "podman pull $TAG_COMMIT"
- ssh -o StrictHostKeyChecking=no $SERVER_USER@$SERVER_IP "podman container rm -f $WEB_NAME || true"
- ssh -o StrictHostKeyChecking=no $SERVER_USER@$SERVER_IP "podman run -d -p 8080:80 --name $WEB_NAME $TAG_COMMIT"
environment:
name: production
url: https://portfolio.afro-coder.com/
# Run only on the main branch
only:
- main
ここで重要な変数のいくつかに潜入しましょう.これらの必要はGitlabリポジトリ(個々のリポジトリ)で定義されます.Make sure you mask the important and sensitive variables, and protect them so that they do not show up in your logs,
your username also needs to be longer than 4 chars to mask it and also meet their RegEx criteria
ssh-keygen
を使用してキーを作成し、公開鍵を.ssh/authorized_keys
ファイルgitlab変数に関する更なるドキュメンテーションは、here
今すぐに進んで、このファイルをリポジトリにコミットします.
git add .gitlab-ci.yml
git commit -s -m "Added Gitlab CI"
git push -u
If your gitlab CI/CD doesn't run after pushing it to the main branch re-check the branch name
and the tags you've given your runner, they should match the one in the .gitlab-ci.yml file
ビルドが正常に終了すると、次のように表示されます.
パイプラインがビルドされた後、コンテナはホスト上で実行されます
$ podman ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
31646243cbe9 docker.io/gitlab/gitlab-runner:alpine run --user=gitlab... 8 days ago Up 16 minutes ago gitlab-runner-priv
4930b205caa1 registry.gitlab.com/leon9923/new-portfolio/main:c2054av4 httpd-foreground 15 minutes ago Up 15 minutes ago 0.0.0.0:8080->80/tcp portfolio.afro-coder.com
そして、それは、あなたが現在自慢のrootlessを持っています(正しく保護されないならば、まだ不安定です).ポッドマンとArgoトンネルでGitlab CI/CDとそれは働きます!私の次の目標は、完全にDockerインターフェースなしでPodmanを使用するGitLabのためのカスタム実行者を作成することです.
Reference
この問題について(楽しみのためにArgoトンネルと容器で単純なポートフォリオを展開すること🚀 - 第2部), 我々は、より多くの情報をここで見つけました https://dev.to/mediocredevops/deploying-a-simple-portfolio-with-argo-tunnels-and-containers-for-fun-part-2-2n8lテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol