touch Gemfile.lock
docker-compose run web rails new . --webpack --skip-turbolinks --skip-spring --skip-test --force --database=postgresql
docker-compose run --rm shell
References: https://docs.docker.com/compose/rails/#connect-the-database
touch Gemfile.lock
docker-compose run web rails new . --webpack --skip-turbolinks --skip-spring --skip-test --force --database=postgresql
docker-compose run --rm shell
References: https://docs.docker.com/compose/rails/#connect-the-database
{ | |
"presets": [ | |
["env", { | |
"modules": false, | |
"targets": { | |
"browsers": "> 1%", | |
"uglify": true | |
}, | |
"useBuiltIns": true | |
}] | |
], | |
"env": { | |
"test": { | |
"presets": ["es2015", | |
["env", { | |
"modules": false, | |
"targets": { | |
"browsers": "> 1%", | |
"uglify": true | |
}, | |
"useBuiltIns": true | |
}] | |
] | |
} | |
}, | |
"plugins": [ | |
"syntax-dynamic-import", | |
"transform-object-rest-spread", | |
["transform-class-properties", { "spec": true }], | |
["transform-runtime", { "polyfill": false, "regenerator": true }] | |
] | |
} |
export SHELL='/bin/bash' | |
export LS_OPTIONS='--color=auto' | |
eval "`dircolors`" | |
alias ls='ls $LS_OPTIONS' | |
alias ll='ls $LS_OPTIONS -l' | |
alias l='ls $LS_OPTIONS -lA' | |
alias be='bundle exec' |
default: &default | |
adapter: postgresql | |
encoding: unicode | |
host: db | |
username: admin | |
password: admin_password | |
pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %> | |
development: | |
<<: *default | |
database: myapp_development | |
test: | |
<<: *default | |
database: myapp_test | |
production: | |
<<: *default | |
database: myapp_production | |
username: myapp_admin | |
password: <%= ENV['MYAPP_DATABASE_PASSWORD'] %> |
version: '3' | |
services: | |
db: | |
image: postgres:9.5.3 | |
ports: | |
- "5432:5432" | |
environment: | |
- TERM=xterm | |
- POSTGRES_PASSWORD=admin_password | |
- POSTGRES_USER=admin | |
- POSTGRES_DB=mycrm_development | |
web: | |
build: . | |
volumes: | |
- .:/usr/src/app:delegated | |
working_dir: /usr/src/app | |
environment: | |
RAILS_ENV: development | |
NODE_ENV: development | |
ports: | |
- "3000:3000" | |
depends_on: | |
- db | |
shell: | |
build: . | |
command: /bin/bash | |
volumes: | |
- .:/usr/src/app:delegated | |
working_dir: /usr/src/app | |
environment: | |
RAILS_ENV: development | |
NODE_ENV: development | |
stdin_open: true | |
tty: true | |
ports: | |
- "3000:3000" | |
depends_on: | |
- db |
#!/usr/bin/env bash | |
log() { | |
echo -e "## $(date +%FT%H:%M:%S%z) ${0} ${@}" | |
} | |
log "Initializing container..." | |
log "Running bundle install ..." | |
bundle install --jobs 4 && log "Finished installing new gems." | |
log "Environment:" && env | sort | |
log "RAILS_ENV=${RAILS_ENV}" | |
cd /usr/src/app | |
log "Clearing tmp ..." | |
bundle exec rails tmp:clear | |
rm /usr/src/app/tmp/pids/server.pid | |
log "Starting foreman ..." | |
bundle exec foreman start |
FROM ruby:2.4.2 | |
ENV DEBIAN_FRONTEND noninteractive | |
ENV TERM xterm | |
ADD bashrc /root/.bashrc | |
RUN echo "deb http://apt.postgresql.org/pub/repos/apt/ jessie-pgdg main" >> /etc/apt/sources.list.d/pgdg.list && \ | |
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add - | |
RUN apt-get -qqy update && \ | |
apt-get install -qqy --no-install-recommends \ | |
ca-certificates \ | |
curl \ | |
dnsutils \ | |
git \ | |
jq \ | |
libgsf-1-dev \ | |
lsb-release \ | |
lsof \ | |
net-tools \ | |
netcat \ | |
procps \ | |
traceroute \ | |
unzip \ | |
vim \ | |
wget \ | |
postgresql-client-9.6 \ | |
&& curl -s https://raw.githubusercontent.com/h2non/bimg/master/preinstall.sh | bash - \ | |
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* | |
RUN apt-get update -qq && apt-get install -y build-essential libpq-dev | |
RUN curl -sL https://deb.nodesource.com/setup_8.x | bash - | |
RUN apt-get install -y nodejs | |
RUN npm i -g yarn | |
RUN mkdir -p /usr/src/app | |
WORKDIR /usr/src/app | |
RUN bundle config --global frozen 0 | |
COPY Gemfile /usr/src/app/ | |
COPY Gemfile.lock /usr/src/app/ | |
RUN bundle install | |
COPY . /usr/src/app | |
ADD docker-entrypoint.sh /usr/src/app/docker-entrypoint.sh | |
RUN chmod +x /usr/src/app/docker-entrypoint.sh | |
CMD ["/usr/src/app/docker-entrypoint.sh"] |
source 'https://rubygems.org' | |
gem 'rails', '5.1.4' |
{ | |
"name": "myapp", | |
"private": true, | |
"dependencies": { | |
"@rails/webpacker": "^3.0.2", | |
"bootstrap": "^3.3.7", | |
"vue": "^2.5.3", | |
"vue-loader": "^13.5.0", | |
"vue-template-compiler": "^2.5.3" | |
}, | |
"devDependencies": { | |
"webpack-dev-server": "^2.9.4" | |
}, | |
"scripts": { | |
"start:dev": "webpack-dev-server --config config/webpack/development.js" | |
} | |
} |
rails: bundle exec rails s -p 3000 -b '0.0.0.0' | |
webpack: yarn run start:dev |