ロリポップサーバに展開するファイルをgithubで管理し、プログラムの変更をgithubにpushしたら、その変更内容をロリポップサーバへCircleCIで自動コピーする方法です。
設定ファイル
以下の内容で、.circieci/config.ymlファイルを作成します。
ファイル内に記載した接続先の環境変数である${xxx}は、後で指定します。
version: 2
jobs:
build:
docker:
- image: circleci/php:7.1-browsers
working_directory: ~/repo
steps:
- checkout
- run: scp -oStrictHostKeyChecking=no -P ${DEPLOY_PORT} ~/repo/* ${DEPLOY_USER}@${DEPLOY_SERVER}:~/web/server1
上記の設定では、以下の作業を行なっています。
- CircleCIの環境に、Dockerコンテナ
circleci/php:7.1-browsers
を起動する。 - githubのリポジトリから、~/repoへチェックアウトを行う。
- チェックアウトされたファイルを、サーバ${DEPLOY_USER}@${DEPLOY_SERVER}の、~/web/server1 ディレクトリに展開する。
SSHキーの登録
CircleCIの設定画面にアクセスし、PERMISSIONS -> SSH Permissions
から、ロリポップにアクセスするためのSSHキー(秘密鍵)を登録します。
環境変数のセット
設定画面のBUILD SETTINGS -> Enviroment Variables
から、環境変数を登録します。
DEPLOY_PORTは、ロリポップの場合は2222を指定します。
DEPLOY_USERとDEPLOY_SERVERは、ロリポップの管理画面に記載されています。
本番サーバへの変更展開
上記の設定を行なった後githubへpushすると、変更内容がロリポップのサーバに展開されます。
こちらもおススメ