5
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

docker + capistrano で deploy の動作確認をする

Last updated at Posted at 2018-05-11

ssh接続サーバーをdockerで構成

公式チュートリアルを参考に ssh 接続可能なサーバーを立てておく。
この例ではrootユーザーでパスワード認証する。

Dockerfile
FROM ubuntu:16.04

RUN apt-get update && apt-get install -y openssh-server
RUN mkdir /var/run/sshd
RUN echo 'root:screencast' | chpasswd
RUN sed -i 's/PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config

# SSH login fix. Otherwise user is kicked off after login
RUN sed 's@session\s*required\s*pam_loginuid.so@session optional pam_loginuid.so@g' -i /etc/pam.d/sshd

ENV NOTVISIBLE "in users profile"
RUN echo "export VISIBLE=now" >> /etc/profile

EXPOSE 22
CMD ["/usr/sbin/sshd", "-D"]

イメージ作成

$ docker image build . -t ssh_server

port を指定してコンテナ実行

$ docker run -d -p 10000:22 ssh_server

docker コンテナから Github に接続できるように、秘密鍵を置いておく。

Githubには手元から公開鍵でssh接続できる前提。

方法は何でも良い。この例では docker cp コマンドで、直接手元からコピーする。

$ docker cp ~/.ssh/id_rsa_github_aiming コンテナID:/root/.ssh

capstrano を インストール

$ gem install capistrano
$ cap install

capistrano の設定変更

適当なレポジトリを指定する。
この例では https://github.com/github/hub を使う。

ちなみにレポジトリの中身は何でも良い。
(レポジトリ側にcapistrano関係のファイルは必要ない)

deploy.rb
set :repo_url, "git@github.com:github/hub.git"

手元からサーバー ( docker コンテナ ) に繋ぐための設定を書く。

deploy/production.rb
# The server-based syntax can be used to override options:
# ------------------------------------
server "localhost",
  user: "root",
  roles: %w{web app},
  ssh_options: {
    forward_agent: false,
    auth_methods: %w(password),
    port: 10000,
    password: "screencast"
  }

デプロイを実行

$ cap production deploy

dockerコンテナに deploy されているのを確認

root@8af7b375dc67:/# ls -la /var/www/my_app_name/
total 24
drwxr-xr-x 5 root root 4096 May 11 06:52 .
drwxr-xr-x 3 root root 4096 May 11 06:52 ..
lrwxrwxrwx 1 root root   44 May 11 06:52 current -> /var/www/my_app_name/releases/20180511065207
drwxr-xr-x 3 root root 4096 May 11 06:52 releases
drwxr-xr-x 7 root root 4096 May 11 06:52 repo
-rw-r--r-- 1 root root  106 May 11 06:52 revisions.log
drwxr-xr-x 2 root root 4096 May 11 06:52 shared

環境

  • Capistrano Version: 3.10.2 (Rake Version: 12.0.0)
  • Mac OS X Sierra
  • Docker version 18.03.0-ce, build 0520e24

チャットメンバー募集

何か質問、悩み事、相談などあればLINEオープンチャットもご利用ください。

Twitter

5
6
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
5
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?