Ruby on Rails
Rotaie sulla finestra mobile
Ricerca…
introduzione
Questo tutorial inizierà con Docker installato e con un'app Rails
Docker e docker-comporre
Prima di tutto, dovremo creare il nostro Dockerfile
. Un buon esempio può essere trovato su questo blog di Nick Janetakis.
Questo codice contiene lo script che verrà eseguito sulla nostra finestra mobile al momento dell'avvio. Per questo motivo, stiamo installando tutte le librerie richieste e terminiamo con l'avvio di Puma (server di sviluppo RoR)
# Use the barebones version of Ruby 2.3.
FROM ruby:2.3.0-slim
# Optionally set a maintainer name to let people know who made this image.
MAINTAINER Nick Janetakis <[email protected]>
# Install dependencies:
# - build-essential: To ensure certain gems can be compiled
# - nodejs: Compile assets
# - libpq-dev: Communicate with postgres through the postgres gem
RUN apt-get update && apt-get install -qq -y --no-install-recommends \
build-essential nodejs libpq-dev git
# Set an environment variable to store where the app is installed to inside
# of the Docker image. The name matches the project name out of convention only.
ENV INSTALL_PATH /mh-backend
RUN mkdir -p $INSTALL_PATH
# This sets the context of where commands will be running in and is documented
# on Docker's website extensively.
WORKDIR $INSTALL_PATH
# We want binstubs to be available so we can directly call sidekiq and
# potentially other binaries as command overrides without depending on
# bundle exec.
COPY Gemfile* $INSTALL_PATH/
ENV BUNDLE_GEMFILE $INSTALL_PATH/Gemfile
ENV BUNDLE_JOBS 2
ENV BUNDLE_PATH /gembox
RUN bundle install
# Copy in the application code from your work station at the current directory
# over to the working directory.
COPY . .
# Ensure the static assets are exposed to a volume so that nginx can read
# in these values later.
VOLUME ["$INSTALL_PATH/public"]
ENV RAILS_LOG_TO_STDOUT true
# The default command that gets run will be to start the Puma server.
CMD bundle exec puma -C config/puma.rb
Inoltre, useremo la docker-compose, per questo creeremo docker-compose.yml
. La spiegazione di questo file sarà più un tutorial per la composizione di una finestra mobile di un'integrazione con Rails, che non includerò qui.
version: '2'
services:
backend:
links:
- #whatever you need to link like db
build: .
command: ./scripts/start.sh
ports:
- '3000:3000'
volumes:
- .:/backend
volumes_from:
- gembox
env_file:
- .dev-docker.env
stdin_open: true
tty: true
Solo con questi due file avrai abbastanza per eseguire docker-compose up
e riattivare la finestra mobile