저는 새로운 소규모 벤처, 원하는 경우 POC를 시작하고 Rails 애플리케이션을 어딘가에 무료로 배포하고 싶습니다. Heroku가 있다는 것을 알았습니다. 다른 옵션이 있습니까?
이것은 내가 주제에 대해 찾은 아주 좋은 게시물입니다
http://blog.sudobits.com/2013/02/15/heroku-alternatives-for-deploying-rails-applications
옵션을 하나씩 살펴 보았고, 겸손한 의견으로는 OpenShift가 최소한 POC \ Prototype 개발 및 생성을 시작할 때 중소 규모 웹 사이트에 가장 적합한 옵션입니다.
왜 더 낫습니까?
단점이 있습니까?
이 문서의 Gemfile 섹션 https://www.openshift.com/blogs/converting-an-existing-rails-app-to-run-on-openshift 가이 문제를 해결할 수 있습니다 ... 나중
기존 애플리케이션을 Openshift에 배포하기 위해 수행해야하는 단계는 무엇입니까?
여러 곳에서 새 애플리케이션 을 만들고 배포하는 방법에 대한 설명을 찾았 지만 기존 애플리케이션을 OpenShift에 배치하는 방법을 이해하기가 조금 어려웠습니다.
이것이 제가 설명하고 싶은 이유입니다
가정-애플리케이션이 이미 git 제어 됨-경로는 / home / dev / MyApp-이제 / home / dev 아래에 있습니다.
rhc domain-create <domain name>
다음을 실행하여 OpenShift에서 애플리케이션 만들기
rhc app-create -a MyApp -t ruby-1.9 --no-git
-a OpenShift 아래에 응용 프로그램 이름을 설정합니다.-Rails 응용 프로그램 이름과 완전히 다를 수 있습니다.
-t는 응용 프로그램 유형을 설정합니다. 현재 루비 1.9가 지원되는 가장 높은 버전이라고 생각합니다.
--no-git은 git을 만들지 말라고 지시합니다.
DB 설정
다음을 호출하여 OpenShift 애플리케이션에 적합한 DB 카트리지를 설치하십시오.
rhc cartridge add <DB cartridge type> -a <Application Name>
예 :
rhc cartridge add mysql-5.1 -a MyApp
MongoDB 및 PostgreSQL도 지원합니다.
OpenShift 데이터베이스와 관련되도록 database.yml을 변경합니다. 이제 OpenShift가 환경 변수로 많은 구성을 확보하고 필요할 때마다 간단히 사용할 수 있으므로 매우 쉽습니다. 예를 들면 다음과 같습니다.
production: adapter: mysql encoding: utf8 database: <%=ENV['OPENSHIFT_APP_NAME']%> pool: 5 host: <%=ENV['OPENSHIFT_MYSQL_DB_HOST']%> port: <%=ENV['OPENSHIFT_MYSQL_DB_PORT']%> username: <%=ENV['OPENSHIFT_MYSQL_DB_USERNAME']%> password: <%=ENV['OPENSHIFT_MYSQL_DB_PASSWORD']%> socket: <%=ENV['OPENSHIFT_MYSQL_DB_SOCKET']%>
모든 것이 로컬에서 작동하는지 확인
Git-OpenShift 저장소를 원격 저장소 중 하나로 추가하고 푸시합니다.
rhc app-show <application name>
-애플리케이션에 대한 모든 정보를 표시합니다.-Git URL 복사git remote add openshift <OpenShift repo URL>
병합하여 OpenShift가 추가하는 모든 것을 가져옵니다.
운영 : git merge openshift/master -s recursive -X ours
변경 사항을 커밋합니다. git commit -am 'adding OpenShift files
git push openshift
이것이 전부입니다. 이제 애플리케이션을 OpenShift에 배포해야합니다.
배포 된 웹 사이트를 어떻게 열 수 있습니까?
rhc app-show <application name>
명령을 사용하면 웹 사이트 URL을 볼 수 있습니다.
일반적으로 http://<application name>-<domain name>.rhcloud.com
자신의 도메인으로 변경하는 것은 매우 쉽습니다.
rhc alias add <app name> <your domain>
http://<application name>-<domain name>.rhcloud.com
OpenShift 머신에 어떻게 연결합니까?
다시 한번 사용 rhc app-show <application name>
하면 SSH 주소를 볼 수 있습니다. ssh <SSH address>
연결하려면 간단히 실행하십시오.
배포시 마이그레이션 및 시드를 자동으로 실행하려면 어떻게합니까?
OpenShift의 한 가지 좋은 점은 배포의 여러 단계에서 트리거되는 사용자 지정 작업 (액션 후크)을 추가 할 수 있다는 것입니다.
https://www.openshift.com/developers/deploying-and-building-applications에서 자세한 내용을 읽을 수 있습니다.
지금은 deploy action-hook에 대해서만 이야기하겠습니다.
deploy
아래에 이름이 지정된 파일을 만듭니다.chmod +x deploy
그것에 약간의 코드를 넣어
예를 들면 :
#! / bin / bash
echo "배포 시작"
$ {OPENSHIFT_REPO_DIR}> / dev / null 푸시 됨
echo "디렉터리를 $ {OPENSHIFT_REPO_DIR} public으로 변경"
cd $ {OPENSHIFT_REPO_DIR}
cd 공개
echo "이름이 지정된 업로드를 $ {OPENSHIFT_DATA_DIR} 업로드하는 소프트 링크를 만드는 중"
ln -s $ {OPENSHIFT_DATA_DIR} 업로드 업로드
echo "번들 exec rake db : migrate RAILS_ENV = production 실행"
번들 exec 레이크 db : migrate RAILS_ENV = "production"
echo "실행중인 번들 exec rake db : seed RAILS_ENV = production"
번들 exec 레이크 db : seed RAILS_ENV = "production"
popd> / dev / null
git add deploy
(물론 폴더 내부에서)파일을 업로드하고 OpenShift에 저장할 수 있도록 Carrierwave를 통합하려면 어떻게해야합니까?
두 가지 점이 있습니다
저장 경로 설정 :
initializers \ carrierwave.rb 파일을
CarrierWave.configure do |config|
if Rails.env.production?
config.storage = :file
config.enable_processing = true
config.root = ENV['OPENSHIFT_DATA_DIR']
config.cache_dir = config.root + 'uploads'
end
end
업 로더는 기본적으로 그대로 둡니다. storage :file
과
def store_dir
"uploads / # {model.class.to_s.underscore} / # {mounted_as} / # {model.id}"
종료
$ OPENSHIFT_DATA_DIR 폴더를 사용하면 파일을 쓸 수 있고 파일이 그대로 유지됩니다.
라우팅이 파일을 찾을 수 있는지 확인 :
그 트릭을 생각해내는 데 시간이 걸렸습니다 (너무 많지 않고 몇 시간)
Rails Routing은 애플리케이션 폴더 아래에있는 폴더 만 연결하는 방법을 알고 있습니다. OpenShift 머신 uploads
에서 $ {OPENSHIFT_REPO_DIR} \ public 폴더 아래에 업로드 된 파일 폴더 (이 경우 이름 이 지정됨)를 찾습니다. 배포 파일에 넣은 소프트 링크 가 편리해집니다. 시스템을 속여서 응용 프로그램 폴더 아래에 있지 않은 폴더에서 해당 파일을 가져 오도록합니다.
나는 그 문제와 배포 방법 및 모든 것에 대한 많은 게시물이 있다는 것을 알고 있지만, 그저 주문하고 싶었습니다.
물론 모든 단계를 문서화하지 않았기 때문에 내가 쓴 내용에 실수와 부정확성이있을 수 있지만, 내가 기억하는 것만으로도 일부 세부 사항이 틀렸다면 자유롭게 수정하십시오.
가장 좋은 소스 중 하나는 OpenShift 문서입니다.
그런 것들이 사람들을 돕고 시간과 돈을 절약하기를 바랍니다.
즐겨
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다