LoginSignup
1
0

More than 5 years have passed since last update.

backlog-jenkins-nginx-dockerでWebサービスを構築②

Last updated at Posted at 2018-10-30

デプロイサーバーを作成

前回の続き。
今回はデプロイ用のサーバーを作る。

docker

install

#version確認
uname -r
3.10.0-327.el7.x86_64

# 古いDockerを削除
sudo yum remove docker \
                  docker-common \
                  container-selinux \
                  docker-selinux \
                  docker-engine

# 入れなおす
sudo yum install -y yum-utils

sudo yum-config-manager \
  --add-repo \
  https://download.docker.com/linux/centos/docker-ce.repo

sudo yum makecache fast
yum list docker-ce.x86_64  --showduplicates |sort -r

#出てきたものから選ぶ
sudo yum install -y docker-ce.x86_64

# 起動と自動設定
sudo systemctl enable docker
sudo systemctl start docker

DockerCompose

install

curl -L https://github.com/docker/compose/releases/download/1.12.0/docker-compose-`uname -s`-`uname -m` > docker-compose

sudo mv docker-compose /usr/local/bin/docker-compose

sudo chmod +x /usr/local/bin/docker-compose

# バージョン確認
docker-compose --version
>>>docker-compose version 1.12.0, build b31ff33

# グループ作成
# dockerグループがなかった場合
#sudo groupadd docker

sudo gpasswd -a $USER docker
sudo systemctl restart docker
exit
# ログインし直す

Docker レジストリ

compose 作成

mkdir /home/docker
mkdir /home/docker/registry
cd /home/docker/registry
vi docker-compose.yml
  • docker-compose.yml
version: '3'
services:
  registry:
    image: registry:2
    tty: true
    container_name: registry
    restart: always
    ports:
      - "5000:5000"
    logging:
      driver: "json-file"
      options:
        max-size: "10m"
        max-file: "3"

レジストリの起動

docker-compose up -d

リバースプロキシ

リバースプロキシの設定

参考

mkdir -p ~/nginx-proxy/certs
vi ~/nginx-proxy/docker-compose.yml
  • ~/nginx-proxy/docker-compose.yml
version: '2'
services:
  nginx-proxy:
    image: jwilder/nginx-proxy
    container_name: nginx-proxy
    ports:
      - 80:80
      - 443:443
    volumes:
      - ./certs:/etc/nginx/certs:ro
      - /etc/nginx/vhost.d
      - /usr/share/nginx/html
      - /var/run/docker.sock:/tmp/docker.sock:ro
    restart: always
  letsencrypt-nginx-proxy-companion:
    image: jrcs/letsencrypt-nginx-proxy-companion
    container_name: nginx-letsencrypt
    volumes:
      - ./certs:/etc/nginx/certs
      - /var/run/docker.sock:/var/run/docker.sock:ro
    volumes_from:
      - nginx-proxy
    restart: always
  • 起動
cd ~/nginx-proxy
docker-compose up -d

Git

最新バージョン

ここの tar.gz の最新

install

####必要なものをインストール
sudo yum -y install curl-devel expat-devel gettext-devel openssl-devel zlib-devel

####取得して街道
cd /usr/local/src/
sudo yum install -y wget
sudo wget https://mirrors.edge.kernel.org/pub/software/scm/git/git-1.8.2.3.tar.gz
sudo tar xzvf git-1.8.2.3.tar.gz

###入れておく
sudo yum -y install perl-ExtUtils-MakeMaker

####install
cd git-1.8.2.3
sudo make prefix=/usr/local all
sudo make prefix=/usr/local install

###確認
git --version

###tar は削除
cd ../
rm -rf git-1.8.2.3.tar.gz

鍵をつくる

  • デプロイサーバーでgit からpullしなければ不要 参考

jenkins サーバー

[root@jenkins ~]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
....

  • コピペして deploy サーバーへ
cat /root/.ssh/{key}.pub

デプロイサーバー

# 移動。なければつくる
cd /root/.ssh
vi id_rsa.pub
  • 登録
cat id_rsa.pub >> ~/.ssh/authorized_keys

動くか確認

mkdir /home/repo
cd /home/repo

鍵をつくる

  • deploy サーバー
cd /root/.ssh/
ssh-keygen -t rsa
cat id_rsa.pub
  • backlog から個人設定> SSH 公開鍵から公開鍵の登録後、クローンする
cd /home/repo
git clone {リポジトリ SSH }

コンテナを立ち上げる

cd /home/repo/{リポジトリ名}

docker build -f /home/repo/{リポジトリ名}/Dockerfile-{ブランチ名} -t localhost:5000/ci-{リポジトリ名}-{ブランチ名} .
docker push localhost:5000/ci-{リポジトリ名}-{ブランチ名}
cmd=`docker ps -q --filter name=ci-{リポジトリ名}-{ブランチ名}`
name=`echo $cmd`
if [ "$name" != "" ]; then
docker rm -f ci-{リポジトリ名}-{ブランチ名}
fi
docker run -i -d --rm --net=nginxproxy_default --name ci-{リポジトリ名}-{ブランチ名} localhost:5000/ci-{リポジトリ名}-{ブランチ名}

必要なパッケージを入れておく

  • deploy サーバー
yum install -y expect

next⇒

1
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
1
0