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 |