-
-
Save thadeu/77d5eab816bd0b192a8a021d6960ae61 to your computer and use it in GitHub Desktop.
| default: &default | |
| adapter: postgresql | |
| encoding: unicode | |
| pool: 5 | |
| timeout: 5000 | |
| username: postgres | |
| host: postgres | |
| port: 5432 | |
| development: | |
| <<: *default | |
| database: app_development | |
| test: | |
| <<: *default | |
| database: app_test | |
| staging: | |
| <<: *default | |
| database: staging_test |
| version: '3' | |
| services: | |
| webpacker: | |
| build: . | |
| command: bundle exec bin/webpack-dev-server | |
| environment: | |
| - WEBPACKER_DEV_SERVER_HOST=0.0.0.0 | |
| volumes: | |
| - .:/app | |
| ports: | |
| - 8080:8080 | |
| app: | |
| build: . | |
| command: /bin/sh -c "rm -f /app/tmp/pids/server.pid && rails server -b 0.0.0.0" | |
| working_dir: /app | |
| environment: | |
| - RAILS_ENV=development | |
| - BUNDLE_JOBS=20 | |
| - BUNDLE_RETRY=5 | |
| - WEBPACKER_DEV_SERVER_HOST=webpacker | |
| volumes: | |
| - .:/app | |
| ports: | |
| - 3000:3000 | |
| links: | |
| - postgres | |
| depends_on: | |
| - webpacker | |
| postgres: | |
| image: postgres:9.4 | |
| volumes: | |
| - /var/lib/postgresql/data | |
| ports: | |
| - 5432:5432 |
| FROM ruby:2.3.1 | |
| MAINTAINER Thadeu Esteves Jr <eu@thadeuesteves.com.br> | |
| # libs essentials | |
| RUN apt-get update && apt-get install -y \ | |
| build-essential \ | |
| libpq-dev \ | |
| postgresql-client-9.4 \ | |
| libxml2-dev \ | |
| libxslt1-dev | |
| # Node.js | |
| RUN curl -sL https://deb.nodesource.com/setup_8.x | bash - \ | |
| && apt-get install -y nodejs | |
| # Yarn | |
| RUN curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - \ | |
| && echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list | |
| RUN apt-get update && apt-get install -y yarn | |
| RUN export TZ=America/Araguaina | |
| RUN mkdir -p /app | |
| WORKDIR /app | |
| RUN bundle config github.https true | |
| COPY . ./ | |
| RUN rm -rf Gemfile.lock | |
| RUN gem install bundler && bundle install --jobs 20 --retry 5 | |
| EXPOSE 3000 | |
| EXPOSE 8080 |
| # Passo-a-Passo | |
| # Primeiro executar o build para baixar as imagens | |
| ```bash | |
| docker-compose build | |
| ``` | |
| # Start a maquina default | |
| ```bash | |
| docker-machine start default | |
| ``` | |
| # Start a ip da maquina default | |
| ```bash | |
| docker-machine ip default | |
| ``` | |
| # Depois subir os services criados com docker-compose | |
| ```bash | |
| docker-compose up | |
| ``` | |
| # configurar o arquivo database.yml | |
| # Cria a base de dados e as primeiras migrates | |
| ```bash | |
| docker-compose run app rake db:create db:migrate | |
| ``` | |
| # Todo comando que usa rake ou rails ou qualquer outro bin relacionado ao rails deve ser executado dentro de | |
| ```bash | |
| docker-compose run app | |
| ``` |
| Siga o tutorial da documentação | |
| https://docs.docker.com/compose/install/#install-compose |
docker-compose.yml MySQL
version: '3'
services:
app:
build: .
command: /bin/sh -c "rm -f /app/tmp/pids/server.pid && rails server -p 3000 -b 0.0.0.0"
volumes:
- .:/app
ports:
- "3000:3000"
links:
- mysql
mysql:
image: mysql:5.7
ports:
- 3306:3306
environment:
MYSQL_ALLOW_EMPTY_PASSWORD: 'yes'
Dockerfile para MySQL
FROM ruby:2.3.1
MAINTAINER Thadeu Esteves Jr eu@thadeuesteves.com.br
libs essentials
RUN apt-get update && apt-get install -y \
build-essential
mysql-client
libmysqlclient-dev
libxml2-dev
libxslt1-dev
Node.js
RUN curl -sL https://deb.nodesource.com/setup_8.x | bash -
&& apt-get install -y nodejs
RUN export TZ=America/Araguaina
RUN mkdir -p /app
WORKDIR /app
RUN bundle config github.https true
COPY Gemfile ./
RUN rm -rf Gemfile.lock
RUN gem install bundler && bundle install --jobs 20 --retry 5
COPY . ./
EXPOSE 3000
para mysql database.yml
default: &default
adapter: mysql2
encoding: utf8
username: root
host: mysql
development:
<<: *default
database: aedes_development