-
Notifications
You must be signed in to change notification settings - Fork 3
/
README
82 lines (61 loc) · 3.25 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
Feel free to change or remove this file, it is informational only.
Repo layout
===========
tmp/ - Temporary storage
public/ - Content (images, css, etc. available to the public)
config.ru - This file is used by Rack-based servers to start the application.
.openshift/action_hooks/pre_build - Script that gets run every git push before the build
.openshift/action_hooks/build - Script that gets run every git push as part of the build process (on the CI system if available)
.openshift/action_hooks/deploy - Script that gets run every git push after build but before the app is restarted
.openshift/action_hooks/post_deploy - Script that gets run every git push after the app is restarted
Notes about layout
==================
Every time you push, everything in your remote repo dir gets recreated, please
store long term items (like an sqlite database) in the OpenShift data
directory, which will persist between pushes of your repo.
The OpenShift data directory is accessible relative to the remote repo
directory (../data) or via an environment variable OPENSHIFT_DATA_DIR.
Ruby Mirror
===========
OpenShift is mirroring rubygems.org at http://mirror1.prod.rhcloud.com/mirror/ruby/
This mirror is on the same network as your application, and your gem download should be faster.
To use the OpenShift mirror:
Edit your Gemfile and replace
source 'http://rubygems.org'
with
source 'http://mirror1.prod.rhcloud.com/mirror/ruby/'
Edit your Gemfile.lock and replace
remote: http://rubygems.org/
with
remote: http://mirror1.prod.rhcloud.com/mirror/ruby/
Environment Variables
=====================
OpenShift provides several environment variables to reference for ease
of use. The following list are some common variables but far from exhaustive:
ENV['OPENSHIFT_GEAR_NAME'] - Application name
ENV['OPENSHIFT_GEAR_DIR'] - Application dir
ENV['OPENSHIFT_DATA_DIR'] - For persistent storage (between pushes)
ENV['OPENSHIFT_TMP_DIR'] - Temp storage (unmodified files deleted after 10 days)
When embedding a database using 'rhc app cartridge add', you can reference environment
variables for username, host and password:
ENV['OPENSHIFT_DB_HOST'] - DB host
ENV['OPENSHIFT_DB_PORT'] - DB Port
ENV['OPENSHIFT_DB_USERNAME'] - DB Username
ENV['OPENSHIFT_DB_PASSWORD'] - DB Password
To get a full list of environment variables, simply add a line in your
.openshift/action_hooks/build script that says "export" and push.
Notes about layout
==================
Every time you push, everything in your remote application path gets recreated
please store long term items (like an sqlite database) in ../data which will
persist between pushes of your repo.
Rails 3.0
===========
Option 1) (Recommended) Git push your application Gemfile/Gemfile.lock. This will
cause the remote OpenShift node to run bundle install --deployment to download and
install your dependencies. Each subsequent git push will use the previously
downloaded dependencies as a starting point, so additional downloads will be a delta.
Option 2) Git add your .bundle and vendor/bundle directories after running
'bundle install --deployment' locally. Be sure to exclude any gems that have native
code or ensure they can run on RHEL x86_64.
Note, a lot of this is redundant with openshift