-
-
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 <[email protected]> | |
# 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 [email protected]
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