GoogleAppEngine(GAE)에 Rails 앱 배포
소개
GoogleAppEngine(GAE)에 Rails 앱을 배포하는 단계를 기록해 둡니다.
주의점
이 절차에서는 DB에 PostgreSQL을 사용한다고 가정하여 Gemfile
, database.yml
, app.yaml
의 예를 설명합니다.
참고
Running Rails 5 on the Google App Engine flexible environment | Ruby | Google Cloud Platform
사전 준비
Google Cloud SDK
Cloud Tools를 설치하고 초기화할 때까지 완료
참고 : Google Cloud SDK
Gemfile
GAE의 Rails 앱은 production 모드로 시작되므로,
GAE에서 이용하는 gem이 production에서 install되도록 한다.
다음은 development, test에서 SQLite를 이용하여,
production에서 PostgreSQL을 이용하는 경우의 예.
Gemfile# Use sqlite3 as the database for Active Record
gem 'sqlite3', group: [:development, :test]
gem 'pg', group: :production
database.yml
AppEngine의 Rails 앱은 production 모드로 시작되므로,
database.yml의 production에 GAE의 앱에서 연결
DB 정보를 기술한다.
다음은 환경 변수 DATABASE_URL
에서 DB URL을 얻는 경우의 예입니다.
config/database.ymlproduction:
url: <%= ENV['DATABASE_URL'] %>
app.yaml 만들기
앱 디렉토리 아래에 app.yaml
를 만듭니다.SECRET_KEY_BASE
, DATABASE_URL
등의 환경 변수도 기술한다.
app.yamlruntime: ruby
env: flex
entrypoint: bundle exec rackup -p $PORT
env_variables:
SECRET_KEY_BASE: 'xxxxx...'
DATABASE_URL: 'postgres://<username>:<password>@<host>:<port>/<database>'
프리컴파일
$ bundle exec rails assets:precompile RAILS_ENV=production
마이그레이션
$ bundle exec rake db:migrate RAILS_ENV=production
배포
$ gcloud app deploy
WARNING: Automatic app detection is currently in Beta
Deployment to Google App Engine requires an app.yaml file. This
command will run `gcloud beta app gen-config` to generate an app.yaml
file for you in the current directory (if the current directory does
not contain an App Engine service, please answer "no").
Do you want to continue (Y/n)?
# app.yamlが存在しない状態でデプロイしようとすると表示される
# 「Y」を入力すると、app.yamlが生成される
This looks like a Ruby application. Please confirm the command to run
as the entrypoint: [bundle exec rackup -p $PORT]:
# app.yamlにentrypointが記述されてないと表示される
# 何も入力せずにEnterキーを押下すると、app.yamlに
# 「entrypoint: bundle exec rackup -p $PORT」
# が追記される
Writing [app.yaml] to [/.../rails/myapp].
You are about to deploy the following services:
- xxxxx-xxxxx-xxxxx/default/20170826t180159 (from [/.../myapp/app.yaml])
Deploying to URL: [https://xxxxx-xxxxx-xxxxx.appspot.com]
Do you want to continue (Y/n)?
# デプロイ先の確認を求められる
# 「Y」を入力すると、表示されてるURLにデプロイが開始される
...
You can stream logs from the command line by running:
$ gcloud app logs tail -s default
To view your application in the web browser run:
$ gcloud app browse
Updates are available for some Cloud SDK components. To install them,
please run:
$ gcloud components update
액세스 확인
아래 명령을 실행하면 브라우저가 열리고 GAE URL에 액세스합니다.
$ gcloud app browse
보충: Server Error가 표시되는 경우
Production 환경에서 이동할 준비가 부족하면 액세스할 때 Server Error가 표시되기 때문에 준비 누출이 없는지 검토합니다.
SECRET_KEY_BASE 설정
SecretKey 생성
$ bundle exec rake secret
xxxxx...
SECRET_KEY_BASE를 app.yaml
에 추가
app.yamlenv_variables:
SECRET_KEY_BASE: 'xxxxx...'
루트로 라우팅 설정
config/routes.rbroot "sample#index"
프리컴파일
$ bundle exec rails assets:precompile RAILS_ENV=production
마이그레이션
$ bundle exec rake db:migrate RAILS_ENV=production
Reference
이 문제에 관하여(GoogleAppEngine(GAE)에 Rails 앱 배포), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/NaokiIshimura/items/bdfd6572d4149d6aa482
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
이 절차에서는 DB에 PostgreSQL을 사용한다고 가정하여
Gemfile
, database.yml
, app.yaml
의 예를 설명합니다.참고
Running Rails 5 on the Google App Engine flexible environment | Ruby | Google Cloud Platform
사전 준비
Google Cloud SDK
Cloud Tools를 설치하고 초기화할 때까지 완료
참고 : Google Cloud SDK
Gemfile
GAE의 Rails 앱은 production 모드로 시작되므로,
GAE에서 이용하는 gem이 production에서 install되도록 한다.
다음은 development, test에서 SQLite를 이용하여,
production에서 PostgreSQL을 이용하는 경우의 예.
Gemfile# Use sqlite3 as the database for Active Record
gem 'sqlite3', group: [:development, :test]
gem 'pg', group: :production
database.yml
AppEngine의 Rails 앱은 production 모드로 시작되므로,
database.yml의 production에 GAE의 앱에서 연결
DB 정보를 기술한다.
다음은 환경 변수 DATABASE_URL
에서 DB URL을 얻는 경우의 예입니다.
config/database.ymlproduction:
url: <%= ENV['DATABASE_URL'] %>
app.yaml 만들기
앱 디렉토리 아래에 app.yaml
를 만듭니다.SECRET_KEY_BASE
, DATABASE_URL
등의 환경 변수도 기술한다.
app.yamlruntime: ruby
env: flex
entrypoint: bundle exec rackup -p $PORT
env_variables:
SECRET_KEY_BASE: 'xxxxx...'
DATABASE_URL: 'postgres://<username>:<password>@<host>:<port>/<database>'
프리컴파일
$ bundle exec rails assets:precompile RAILS_ENV=production
마이그레이션
$ bundle exec rake db:migrate RAILS_ENV=production
배포
$ gcloud app deploy
WARNING: Automatic app detection is currently in Beta
Deployment to Google App Engine requires an app.yaml file. This
command will run `gcloud beta app gen-config` to generate an app.yaml
file for you in the current directory (if the current directory does
not contain an App Engine service, please answer "no").
Do you want to continue (Y/n)?
# app.yamlが存在しない状態でデプロイしようとすると表示される
# 「Y」を入力すると、app.yamlが生成される
This looks like a Ruby application. Please confirm the command to run
as the entrypoint: [bundle exec rackup -p $PORT]:
# app.yamlにentrypointが記述されてないと表示される
# 何も入力せずにEnterキーを押下すると、app.yamlに
# 「entrypoint: bundle exec rackup -p $PORT」
# が追記される
Writing [app.yaml] to [/.../rails/myapp].
You are about to deploy the following services:
- xxxxx-xxxxx-xxxxx/default/20170826t180159 (from [/.../myapp/app.yaml])
Deploying to URL: [https://xxxxx-xxxxx-xxxxx.appspot.com]
Do you want to continue (Y/n)?
# デプロイ先の確認を求められる
# 「Y」を入力すると、表示されてるURLにデプロイが開始される
...
You can stream logs from the command line by running:
$ gcloud app logs tail -s default
To view your application in the web browser run:
$ gcloud app browse
Updates are available for some Cloud SDK components. To install them,
please run:
$ gcloud components update
액세스 확인
아래 명령을 실행하면 브라우저가 열리고 GAE URL에 액세스합니다.
$ gcloud app browse
보충: Server Error가 표시되는 경우
Production 환경에서 이동할 준비가 부족하면 액세스할 때 Server Error가 표시되기 때문에 준비 누출이 없는지 검토합니다.
SECRET_KEY_BASE 설정
SecretKey 생성
$ bundle exec rake secret
xxxxx...
SECRET_KEY_BASE를 app.yaml
에 추가
app.yamlenv_variables:
SECRET_KEY_BASE: 'xxxxx...'
루트로 라우팅 설정
config/routes.rbroot "sample#index"
프리컴파일
$ bundle exec rails assets:precompile RAILS_ENV=production
마이그레이션
$ bundle exec rake db:migrate RAILS_ENV=production
Reference
이 문제에 관하여(GoogleAppEngine(GAE)에 Rails 앱 배포), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/NaokiIshimura/items/bdfd6572d4149d6aa482
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Google Cloud SDK
Cloud Tools를 설치하고 초기화할 때까지 완료
참고 : Google Cloud SDK
Gemfile
GAE의 Rails 앱은 production 모드로 시작되므로,
GAE에서 이용하는 gem이 production에서 install되도록 한다.
다음은 development, test에서 SQLite를 이용하여,
production에서 PostgreSQL을 이용하는 경우의 예.
Gemfile
# Use sqlite3 as the database for Active Record
gem 'sqlite3', group: [:development, :test]
gem 'pg', group: :production
database.yml
AppEngine의 Rails 앱은 production 모드로 시작되므로,
database.yml의 production에 GAE의 앱에서 연결
DB 정보를 기술한다.
다음은 환경 변수
DATABASE_URL
에서 DB URL을 얻는 경우의 예입니다.config/database.yml
production:
url: <%= ENV['DATABASE_URL'] %>
app.yaml 만들기
앱 디렉토리 아래에 app.yaml
를 만듭니다.SECRET_KEY_BASE
, DATABASE_URL
등의 환경 변수도 기술한다.
app.yamlruntime: ruby
env: flex
entrypoint: bundle exec rackup -p $PORT
env_variables:
SECRET_KEY_BASE: 'xxxxx...'
DATABASE_URL: 'postgres://<username>:<password>@<host>:<port>/<database>'
프리컴파일
$ bundle exec rails assets:precompile RAILS_ENV=production
마이그레이션
$ bundle exec rake db:migrate RAILS_ENV=production
배포
$ gcloud app deploy
WARNING: Automatic app detection is currently in Beta
Deployment to Google App Engine requires an app.yaml file. This
command will run `gcloud beta app gen-config` to generate an app.yaml
file for you in the current directory (if the current directory does
not contain an App Engine service, please answer "no").
Do you want to continue (Y/n)?
# app.yamlが存在しない状態でデプロイしようとすると表示される
# 「Y」を入力すると、app.yamlが生成される
This looks like a Ruby application. Please confirm the command to run
as the entrypoint: [bundle exec rackup -p $PORT]:
# app.yamlにentrypointが記述されてないと表示される
# 何も入力せずにEnterキーを押下すると、app.yamlに
# 「entrypoint: bundle exec rackup -p $PORT」
# が追記される
Writing [app.yaml] to [/.../rails/myapp].
You are about to deploy the following services:
- xxxxx-xxxxx-xxxxx/default/20170826t180159 (from [/.../myapp/app.yaml])
Deploying to URL: [https://xxxxx-xxxxx-xxxxx.appspot.com]
Do you want to continue (Y/n)?
# デプロイ先の確認を求められる
# 「Y」を入力すると、表示されてるURLにデプロイが開始される
...
You can stream logs from the command line by running:
$ gcloud app logs tail -s default
To view your application in the web browser run:
$ gcloud app browse
Updates are available for some Cloud SDK components. To install them,
please run:
$ gcloud components update
액세스 확인
아래 명령을 실행하면 브라우저가 열리고 GAE URL에 액세스합니다.
$ gcloud app browse
보충: Server Error가 표시되는 경우
Production 환경에서 이동할 준비가 부족하면 액세스할 때 Server Error가 표시되기 때문에 준비 누출이 없는지 검토합니다.
SECRET_KEY_BASE 설정
SecretKey 생성
$ bundle exec rake secret
xxxxx...
SECRET_KEY_BASE를 app.yaml
에 추가
app.yamlenv_variables:
SECRET_KEY_BASE: 'xxxxx...'
루트로 라우팅 설정
config/routes.rbroot "sample#index"
프리컴파일
$ bundle exec rails assets:precompile RAILS_ENV=production
마이그레이션
$ bundle exec rake db:migrate RAILS_ENV=production
Reference
이 문제에 관하여(GoogleAppEngine(GAE)에 Rails 앱 배포), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/NaokiIshimura/items/bdfd6572d4149d6aa482
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
runtime: ruby
env: flex
entrypoint: bundle exec rackup -p $PORT
env_variables:
SECRET_KEY_BASE: 'xxxxx...'
DATABASE_URL: 'postgres://<username>:<password>@<host>:<port>/<database>'
$ bundle exec rails assets:precompile RAILS_ENV=production
마이그레이션
$ bundle exec rake db:migrate RAILS_ENV=production
배포
$ gcloud app deploy
WARNING: Automatic app detection is currently in Beta
Deployment to Google App Engine requires an app.yaml file. This
command will run `gcloud beta app gen-config` to generate an app.yaml
file for you in the current directory (if the current directory does
not contain an App Engine service, please answer "no").
Do you want to continue (Y/n)?
# app.yamlが存在しない状態でデプロイしようとすると表示される
# 「Y」を入力すると、app.yamlが生成される
This looks like a Ruby application. Please confirm the command to run
as the entrypoint: [bundle exec rackup -p $PORT]:
# app.yamlにentrypointが記述されてないと表示される
# 何も入力せずにEnterキーを押下すると、app.yamlに
# 「entrypoint: bundle exec rackup -p $PORT」
# が追記される
Writing [app.yaml] to [/.../rails/myapp].
You are about to deploy the following services:
- xxxxx-xxxxx-xxxxx/default/20170826t180159 (from [/.../myapp/app.yaml])
Deploying to URL: [https://xxxxx-xxxxx-xxxxx.appspot.com]
Do you want to continue (Y/n)?
# デプロイ先の確認を求められる
# 「Y」を入力すると、表示されてるURLにデプロイが開始される
...
You can stream logs from the command line by running:
$ gcloud app logs tail -s default
To view your application in the web browser run:
$ gcloud app browse
Updates are available for some Cloud SDK components. To install them,
please run:
$ gcloud components update
액세스 확인
아래 명령을 실행하면 브라우저가 열리고 GAE URL에 액세스합니다.
$ gcloud app browse
보충: Server Error가 표시되는 경우
Production 환경에서 이동할 준비가 부족하면 액세스할 때 Server Error가 표시되기 때문에 준비 누출이 없는지 검토합니다.
SECRET_KEY_BASE 설정
SecretKey 생성
$ bundle exec rake secret
xxxxx...
SECRET_KEY_BASE를 app.yaml
에 추가
app.yamlenv_variables:
SECRET_KEY_BASE: 'xxxxx...'
루트로 라우팅 설정
config/routes.rbroot "sample#index"
프리컴파일
$ bundle exec rails assets:precompile RAILS_ENV=production
마이그레이션
$ bundle exec rake db:migrate RAILS_ENV=production
Reference
이 문제에 관하여(GoogleAppEngine(GAE)에 Rails 앱 배포), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/NaokiIshimura/items/bdfd6572d4149d6aa482
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
$ bundle exec rake db:migrate RAILS_ENV=production
$ gcloud app deploy
WARNING: Automatic app detection is currently in Beta
Deployment to Google App Engine requires an app.yaml file. This
command will run `gcloud beta app gen-config` to generate an app.yaml
file for you in the current directory (if the current directory does
not contain an App Engine service, please answer "no").
Do you want to continue (Y/n)?
# app.yamlが存在しない状態でデプロイしようとすると表示される
# 「Y」を入力すると、app.yamlが生成される
This looks like a Ruby application. Please confirm the command to run
as the entrypoint: [bundle exec rackup -p $PORT]:
# app.yamlにentrypointが記述されてないと表示される
# 何も入力せずにEnterキーを押下すると、app.yamlに
# 「entrypoint: bundle exec rackup -p $PORT」
# が追記される
Writing [app.yaml] to [/.../rails/myapp].
You are about to deploy the following services:
- xxxxx-xxxxx-xxxxx/default/20170826t180159 (from [/.../myapp/app.yaml])
Deploying to URL: [https://xxxxx-xxxxx-xxxxx.appspot.com]
Do you want to continue (Y/n)?
# デプロイ先の確認を求められる
# 「Y」を入力すると、表示されてるURLにデプロイが開始される
...
You can stream logs from the command line by running:
$ gcloud app logs tail -s default
To view your application in the web browser run:
$ gcloud app browse
Updates are available for some Cloud SDK components. To install them,
please run:
$ gcloud components update
액세스 확인
아래 명령을 실행하면 브라우저가 열리고 GAE URL에 액세스합니다.
$ gcloud app browse
보충: Server Error가 표시되는 경우
Production 환경에서 이동할 준비가 부족하면 액세스할 때 Server Error가 표시되기 때문에 준비 누출이 없는지 검토합니다.
SECRET_KEY_BASE 설정
SecretKey 생성
$ bundle exec rake secret
xxxxx...
SECRET_KEY_BASE를 app.yaml
에 추가
app.yamlenv_variables:
SECRET_KEY_BASE: 'xxxxx...'
루트로 라우팅 설정
config/routes.rbroot "sample#index"
프리컴파일
$ bundle exec rails assets:precompile RAILS_ENV=production
마이그레이션
$ bundle exec rake db:migrate RAILS_ENV=production
Reference
이 문제에 관하여(GoogleAppEngine(GAE)에 Rails 앱 배포), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/NaokiIshimura/items/bdfd6572d4149d6aa482
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
$ gcloud app browse
Production 환경에서 이동할 준비가 부족하면 액세스할 때 Server Error가 표시되기 때문에 준비 누출이 없는지 검토합니다.
SECRET_KEY_BASE 설정
SecretKey 생성
$ bundle exec rake secret
xxxxx...
SECRET_KEY_BASE를
app.yaml
에 추가app.yaml
env_variables:
SECRET_KEY_BASE: 'xxxxx...'
루트로 라우팅 설정
config/routes.rb
root "sample#index"
프리컴파일
$ bundle exec rails assets:precompile RAILS_ENV=production
마이그레이션
$ bundle exec rake db:migrate RAILS_ENV=production
Reference
이 문제에 관하여(GoogleAppEngine(GAE)에 Rails 앱 배포), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/NaokiIshimura/items/bdfd6572d4149d6aa482텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)