wercker (deployer)를 사용하여 bitbucket에서 사쿠라 렌탈 서버로 자동 배포

배포 흐름





망설이는 곳만 정리합니다.



wercker의 workflows 설정을 알지 못했습니다.



workflows의 pipeline은 wercker.yml에 기술하는 다음과 이름을 맞춘다

wercker.yml
box: boedy/wercker-php
no-response-timeout: 25

build:  <- ココと名前を合わせる
    steps:
       - script:

wercker.yml 설정



cd의 방법을 모른다.



cwd를 사용하여 작업 디렉토리 전환

wercker.yml
- script:
    name: deploy application
    cwd: deploy/
    code: php deployer.phar deploy -vvv production

yml의 설정을 알지 못했습니다.



wercker.yml
box: boedy/wercker-php
no-response-timeout: 25
build:
    steps:
       - script:
          name: deployer install
          cwd: deploy/
          code: curl -L -O http://deployer.org/deployer.phar

deploy:
    steps:
       - script:
            name: make .ssh directory
            code: mkdir -p "$HOME/.ssh"

       - create-file:
          name: write id_rsa
          filename: $HOME/.ssh/id_rsa
          content: $SAKURA_KEY_PRIVATE
          overwrite: true
          hide-from-log: true

       - create-file:
          name: write id_rsa pub
          filename: $HOME/.ssh/id_rsa.pub
          content: $SAKURA_KEY_PUBLIC
          overwrite: true
          hide-from-log: true

       - script:
          name: deploy application
          cwd: deploy/
          code: php deployer.phar deploy -vvv production


deployer 설정을 모르는



git을 사쿠라에 설치해야하기 때문에 bin의 위치 지정
※사쿠라에 디폴트로 인스톨 되고 있는 git는 사용할 수 없었다

deploy.php
<?php
require 'recipe/laravel.php';

serverList('server.yml'); // server情報はserver.ymlにまとめた
set('repository', '[email protected]:xxx/xxx.git'); // デプロイするリポジトリ
set('writable_use_sudo', false); // sudo 権限ないので false
env('bin/git', '/home/xxx/local/bin/git'); //インストールしたgitのbin

set('shared_files', ['.env']);
set('shared_dirs', [
    'storage/app',
    'storage/framework/cache',
    'storage/framework/sessions',
    'storage/framework/views',
    'storage/logs',
]);
set('writable_dirs', ['bootstrap/cache', 'storage']);

/**
 * Make writable dirs.
 */
task('deploy:writable', function () {

//略

})->desc('Make writable dirs');

「//약어」의 부분・・・
deployer의 deploy:writable이 chmod 777 -R 이며,
런타임에 오류가 발생했기 때문에 작업을 덮어 쓰기 위해 내용을 복사하여 특정 위치를 수정했습니다.chmod 777 -R -> chmod -R 777
추가
위의 "//약어"부분은 다음 PR이 병합 되었기 때문에 대응 불필요하게되었습니다. (^o^)/
htps : // 기주 b. 이 m/에서 pぉ yphp/로 pぉ이ぇr/콧미 t/후46d3f58f22f2d917아10854d54c9419훗 bdb28

server.yml의 설정을 모르는



sercer.yml
production:
  host: xxx.sakura.ne.jp
  identity_file:
    private_key: "/root/.ssh/id_rsa"
    public_key:  "/root/.ssh/id_rsa.pub"
  user: username
  stage: production
  deploy_path: "~/export"
  branch: master

production은 wercker.yml의php deployer.phar deploy -vvv production

사쿠라에서 설정을 모르는



csh에서 bash로 변경



명령줄에서 쉘 실행할 수 없습니다.
사쿠라의 기본 쉘을 변경했습니다.

bash 위치 찾기$ cat /etc/shells
변경하다$ chsh -s /usr/local/bin/bash
exit하여 다시 들어와 반영되어 있는지 확인한다.

사쿠라의 git이 지원하지 않았다.



deployer 실행시 git 명령으로 오류가 발생했습니다.
fatal: git was built without support for git-submodule (NO_PERL=1).

설치
$ wget https://github.com/git/git/archive/v2.10.0-rc2.tar.gz
$ tar xjvf v2.10.0-rc2.tar.gz
$ cd git-2.10.0-rc2/
$ gmake configure
$ ./configure --prefix=$HOME/local
$ gmake all install

경로를 통과합니다. bashrc
PATH=$HOME/local/bin:$PATH

확인
$ which git
/home/userid/bin/bin/git
$ git --version
git version 2.10.0-rc2

참고로 한 사이트



Laravel5를 사쿠라의 렌탈 서버로 이동(스탠다드 플랜 이상)
wercker를 사용하여 사쿠라 서버에 자동 배포 할 수있었습니다.
사쿠라 인터넷의 기본 쉘을 bash로 변경해 보았습니다.
사쿠라 인터넷 렌탈 서버에 Git 설치
배포 도구를 사용하여 Laravel 배포
deployer docs

좋은 웹페이지 즐겨찾기