Last active
March 27, 2018 16:52
-
-
Save newbrunomartins/95173f3f50223959fde771136a6a008e to your computer and use it in GitHub Desktop.
Docker Compose em Debian Based (Rails + Docker-compose)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#Iniciando o projeto | ENTRE dentro da pasta que você gostaria de rodar o projeto. Eu por exemplo, inicio dentro do Dropboxmesmo usando Git... Vai que... | |
docker run -it --rm --user "$(id -u):$(id -g)" -v "$PWD":/usr/src/app -w /usr/src/app rails rails new --skip-bundle nome_do_projeto --database=postgresql | |
#CASO O COMANDO ACIMA NÃO RODE... | |
$ sudo groupadd docker | |
$ sudo gpasswd -a ${USER} docker && sudo systemctl restart docker | |
$ newgrp docker | |
#Crie um Dockerfile e cole o código abaixo. Exemplo no terminal: "atom Dockerfile" ou "code Dokerfile" | |
FROM ruby:2.3-slim | |
# Instalando as dependências | |
RUN apt-get update -y && apt-get install -qq -y --no-install-recommends \ | |
build-essential nodejs libpq-dev | |
# Definindo um caminho absoluto | |
ENV INSTALL_PATH /usr/src/app | |
# Criando um diretório para receber a instalação | |
RUN mkdir -p $INSTALL_PATH | |
# Definindo a pasta principal | |
WORKDIR $INSTALL_PATH | |
# Copiando o gemfile para dentro do projeto | |
COPY Gemfile ./ | |
# Instalando todas as Gems | |
RUN bundle install | |
# Copiando o código para dentro do container | |
COPY . . | |
# Iniciando o servidor | |
CMD puma -C config/puma.rb | |
#Ainda na raiz do projeto, crie um arquivo docker-compose.yml com o conteúdo abaixo: | |
version: '2' | |
services: | |
postgres: | |
image: 'postgres:9.5' | |
volumes: | |
- 'postgres:/var/lib/postgresql/data' | |
web: | |
depends_on: | |
- 'postgres' | |
build: . | |
ports: | |
- '3000:3000' | |
volumes: | |
- '.:/usr/src/app' | |
volumes: | |
postgres: | |
#Faça o BUILD do projeto | |
docker-compose build | |
#Navegue até /config/database.yml e substitua por | |
default: &default | |
adapter: postgresql | |
encoding: unicode | |
pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %> | |
host: postgres | |
user: postgres | |
development: | |
<<: *default | |
database: nome_qualquer_para_o_banco_development | |
test: | |
<<: *default | |
database: nome_qualquer_para_o_banco_test | |
production: | |
<<: *default | |
database: nome_qualquer_para_o_banco_production | |
#Crie o banco de dados | |
docker-compose run web rails db:create | |
#crie seu Scaffold com | |
docker-compose run --rm web rails g scaffold post title description name #nem sempre/ou nunca será scaffold, mas por agora, ta valendo ;) | |
#Rode as migrations | |
docker-compose run --rm web rake db:migrate | |
#Suba o container! \0/\0/\0/\0/\0/\0/\0/\0/\0/\0/ | |
docker-compose up | |
#Para encerrar tudo e apagar as imagens (ISSO NÃO APAGA O BANCO E AS CONFIGURAÇÕES ;) ), rode: | |
docker system prune -a | |
#OU Rode o comando abaixo apenas para matar os processos | |
docker-compose kill | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment