Convox base image for Ruby on Rails
FROM convox/rails
# copy only the files needed for bundle install
COPY Gemfile /app/Gemfile
COPY Gemfile.lock /app/Gemfile.lock
RUN bundle install
# copy only the files needed for assets:precompile
COPY Rakefile /app/Rakefile
COPY config /app/config
COPY public /app/public
COPY app/assets /app/app/assets
RUN rake assets:precompile
# copy the rest of the app
COPY . /app
Application using this image should:
- Copy their source files into
/app
- Listen for HTTP requests on port
5000
.
- Listen for HTTP request on port
4000
and redirects all requests tohttps://
. - Listen for HTTP requests on port
4001
accepting PROXY protocol and injectingX-Forwarded-For
headers.
Using this image in your docker-compose.yml
should look something like this:
labels:
- convox.port.443.protocol=tls
- convox.port.443.proxy=true
ports:
- 80:4000
- 443:4001
Base Image: convox/ruby
libmysqld-dev
libpq-dev
libsqlite3-dev
ruby-dev
- Buffers incoming HTTP requests
- Accept PROXY protocol headers to discover source IP
- Inject
X-Forwarded-Proto
andX-Forwarded-For
- Serve
/assets
from disk without hitting the Rails app