0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

VPS に Docker コンテナの API サーバーをデプロイする

Last updated at Posted at 2024-12-25

概要

XServer VPS に Docker で開発した API サーバーをデプロイし、リクエストを投げるまでの手順を自分用にまとめました

前提

  • Docker コンテナに立てる API サーバーが作成済み
  • ローカルと VPS の OS は Ubuntu(ローカルのOSは windows でも手順変わらないはず)
  • デプロイしたいソースが GitHub にある

XServer VPS 契約

素直にフォームを入力すればよく、つまずくところはなさそうなので割愛
ただし、アクセス方法に ssh 接続を指定した場合に秘密鍵をダウンロードできるので、ダウンロードしたファイルを消さないよう注意

SSH 接続

ローカルPC から VPS に ssh 接続できるようにする
契約時ダウンロードした秘密鍵を ~/.ssh におく

~/.ssh/config を作成し下の内容を記述

Host your_host_name # 任意のホスト名
    HostName xxx.xxx.xxx.xxx # 契約した VPS の IPアドレス
    User root
    IdentityFile ~/.ssh/example.pem # example.pemは秘密鍵ファイルの名前

permission を更新する

chmod 600 ~/.ssh/config
chmod 600 ~/.ssh/example.pem

XServerの VPS パネルから ssh 接続を許可するポートを開放する
「パケットフィルター設定を追加」を押下し、「フィルター」に「SSH」を指定するとポート番号 22 が指定されるはず(2024/12/25 時点)
スクリーンショット 2024-12-25 0029.png

ssh 接続確認

ssh -v your_host_name

Docker インストール

ssh -v your_host_name で VPS に接続する
apt リポジトリに接続するためのファイルを作成

cat << EOS | sudo tee /etc/apt/sources.list.d/docker.sources > /dev/null
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(lsb_release -cs)
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: 
$(while read line; do echo " $line"; done < <(curl -fsSL https://download.docker.com/linux/ubuntu/gpg))
EOS

Docker Engine, Docker Compose のインストール

sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-compose

Git 接続

ssh -v your_host_name で VPS に接続する

VPS にデフォルトで git はインストールされているようなので、Git インストールはしなくて良い

git --version

ssh 鍵生成

ssh-keygen -f .ssh/github

~/.ssh/config を作成し下の内容を記述

Host github.com
    User git
    IdentityFile ~/.ssh/github

公開鍵を cat ~/.ssh/github.pub で確認し、GitHub の Deploy Key に追加する
読み込みのみを許可する(デフォルト)
スクリーンショット (1).png

導通

ssh -T git@github.com

ビルド

ソースを github から clone する

git clone git@github.com:your-repository-name.git

ローカルと同様の手順でビルドする

API サーバーのポート開放

XServer の VPS パネルから解放したいポートを指定する

スクリーンショット (2).png
「パケットフィルター設定を追加」を押下し、「フィルター」に「手動で設定」を選択
解放したいポート番号を指定して追加する

どの PC からでも下記のように、リクエストが投げられる

curl "xxx.xxx.xxx.xxx:8080/ping"

参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?