구름 위에서 Dokku의 필기를 해봤어요.

5920 단어 NiftyClouddokku
nifty 구름의 표준적인 인상인 Ubuntu 14.04로 제작된 서버로 도쿠(자기 호스트가 되는 미니 허쿠 같은 것)의 필기를 살짝 해봤다.
설치하다.
참조Getting Started with Dokku.기본적으로 이 두 줄이면 된다.
# wget https://raw.githubusercontent.com/dokku/dokku/v0.8.0/bootstrap.sh
# sudo DOKKU_TAG=v0.8.0 bash bootstrap.sh
그러나 왠지 이름이 해결되지 않는 오류가 발생해 DNS 설정을 구글의 일부로 변경한 후 순조롭게 진행됐다.
# cp /etc/resolv.conf{,.org}
# sudo echo nameserver 8.8.8.8 > /etc/resolv.conf
설치 스크립트가 완료되면 docker를 사용할 수 있습니다
# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
http://${サーバーのグローバルIP}:80에서 초기 설정을 할 수 있습니다.
단, ufw가 유효하기 때문에 계속 이러면 접근할 수 없기 때문에 우선 무효화합니다.
# ufw disable
Firewall stopped and disabled on system startup
이렇게 하면 설정 화면에 접근할 수 있다.
Public Key에서 루트의 공개 키를 기본적으로 입력했기 때문에git push에서도 이 서버에 로그인한 기밀 키를 사용하고 싶을 때 그대로 유지할 수 있습니다.git push를 사용할 때 다른 열쇠를 사용하려면 고쳐야 합니다.
(참고로 Adding SSH Keys에서처럼 공개 키도 이후dokku ssh-keys:add KEY_NAME path/to/id_rsa.pub의 명령으로 추가할 수 있다.그렇긴 한데ssh/authorized_단지 키에 공개 키의 내용을 추가했을 뿐입니다.)
서버의 IP 주소가 Hostname에 표시되므로 당분간 그대로 둡니다.IP에 도메인을 할당한 경우 도메인을 입력하면 됩니다.Finish Setup 버튼을 클릭하면 Deploying to Dokku로 리디렉션됩니다.
응용 프로그램을 설계해 보다
Deploying to Dokku를 보면서 프로그램을 디버깅합니다.
우선, 도쿠가 설치된 서버에서의 작업입니다.응용 프로그램의 제작.
# dokku apps:create ruby-rails-sample
Creating ruby-rails-sample... done
# dokku apps
=====> My Apps
ruby-rails-sample
postgres 플러그인을 설치합니다.
# sudo dokku plugin:install https://github.com/dokku/dokku-postgres.git
(略)
데이터베이스를 만듭니다.
# dokku postgres:create rails-database
       Waiting for container to be ready
       Creating container database
       Securing connection to database
=====> Postgres container created: rails-database
=====> Container Information
       Config dir:          /var/lib/dokku/services/postgres/rails-database/config
       Data dir:            /var/lib/dokku/services/postgres/rails-database/data
       Dsn:                 postgres://postgres:bb8bcc55f2e195f7bfcc3c8c3cc9688a@dokku-postgres-rails-database:5432/rails_database
       Exposed ports:       -                        
       Id:                  c3f315cc999ce770422ae664ba905c88d7377f8233c76d0449a22a800a4c63f2
       Internal ip:         172.17.0.2               
       Links:               -                        
       Service root:        /var/lib/dokku/services/postgres/rails-database
       Status:              running                  
       Version:             postgres:9.6.1
미리 링크 응용 프로그램과 데이터베이스입니다.
# dokku postgres:link rails-database ruby-rails-sample
그 다음으로 수중에 있는 PC에 대한 작업.나는 clone 샘플 프로그램을 할 줄 안다.
$ git clone https://github.com/heroku/ruby-rails-sample.git
Cloning into 'ruby-rails-sample'...
remote: Counting objects: 239, done.
e: Total 239 (delta 0), reused 0 (delta 0), pack-reused 239
Receiving objects: 100% (239/239), 42.78 KiB | 0 bytes/s, done.
Resolving deltas: 100% (86/86), done.
Checking connectivity... done.
도쿠의 창고를remote에 로그인한 다음 응용 프로그램push를 만듭니다.
$ cd ruby-rails-sample/
$ git remote add dokku dokku@${サーバーの IP アドレス}:ruby-rails-sample
$ git push dokku master
(heroku と同じようなログがずらずら表示されて、)
-----> Attempting to run scripts.dokku.postdeploy from app.json (if defined)        
=====> Application deployed:        
       http://${サーバーの IP アドレス}:5307

To dokku@${サーバーの IP アドレス}:ruby-rails-sample
 * [new branch]      master -> master
브라우저http://${サーバーの IP アドレス}:5307에 액세스하면 다음 항목이 정상적으로 표시됩니다.

총결산
클라우드에 Dokku를 설치해서 프로그램을 디버깅해 볼 수 있습니다.
간단하게 설치할 수 있지만 API 없이 도쿠를 설치한 서버가 없으면 앱 제작 등 각종 관리 작업을 할 수 없어 미묘하게 느껴지는데...
다음에 API에도 있는 디스와 플린을 시험해 보자.
참고 자료
  • Getting Started with Dokku
  • Deploying to Dokku
  • Dokku - The smallest PaaS implementation you've ever seen
  • Dokku 아픈 곳과 쓰는 곳.
  • docker - Scaling out Dokku infrastructure - Server Fault
  • Deis, Inc. | The Kubernetes Company
  • Flynn ? The product that ops provides to developers
  • flynn/flynn: A next generation open source platform as a service (PaaS)
  • 좋은 웹페이지 즐겨찾기