From 67baa47ae6d3deb452bef018d98acf2c7e85ea2c Mon Sep 17 00:00:00 2001 From: João Vitor Rebouças Date: Thu, 4 May 2017 18:50:44 -0300 Subject: [PATCH] Adicionando Dockerfile e modificando conexão ao banco --- Dockerfile | 54 ++++++++++++++++++++++++++++++------------------------ config/database.yml | 4 ++-- docker-compose.yml | 38 ++++++++++++++++++++++++++++++++++++++ docker-entrypoint.sh | 27 +++++++++++++++++++++++++++ 4 files changed, 97 insertions(+), 26 deletions(-) create mode 100755 docker-compose.yml create mode 100755 docker-entrypoint.sh diff --git a/Dockerfile b/Dockerfile index a13e186..0fdfe8c 100755 --- a/Dockerfile +++ b/Dockerfile @@ -3,36 +3,42 @@ MAINTAINER Jonathan Brilhante ENV LANG en_US.UTF-8 ENV LC_ALL en_US.UTF-8 +ENV CONFIGURE_OPTS --disable-install-rdoc +ENV APP_HOME /myapp +ENV DEBIAN_FRONTEND=noninteractive + +# Install tools & libs to compile everything # Install imagemagick +RUN apt-get update && \ + apt-get install -y build-essential libssl-dev libreadline-dev imagemagick libmagick++-dev libmagic-dev git-core mysql-client libmysqlclient-dev && \ + apt-get clean && \ + git clone https://github.com/sstephenson/ruby-build.git && \ + cd ruby-build && \ + ./install.sh && \ + ruby-build 2.1.1 /usr/local && \ + gem install bundler && \ + gem install mysql2 && \ + mkdir $APP_HOME && \ + groupadd -r vlibras && \ + useradd -r -g vlibras vlibras && \ + apt-get purge -y build-essential git-core && \ + apt-get clean -# Install tools & libs to compile everything -RUN apt-get update && apt-get install -y build-essential libssl-dev libreadline-dev wget && apt-get clean +WORKDIR $APP_HOME -# Install imagemagick -RUN apt-get install -y imagemagick libmagick++-dev libmagic-dev && apt-get clean +ADD * $APP_HOME/ +RUN bundle install -RUN apt-get install -y python-software-properties +ADD . $APP_HOME -# Install ruby-build -RUN apt-get install -y git-core && apt-get clean -RUN git clone https://github.com/sstephenson/ruby-build.git && cd ruby-build && ./install.sh +COPY ./docker-entrypoint.sh / -# Install ruby 2.1.1 -ENV CONFIGURE_OPTS --disable-install-rdoc -RUN ruby-build 2.1.1 /usr/local -RUN gem install bundler +RUN chown -R vlibras. $APP_HOME && chmod +x /docker-entrypoint.sh -# Enable insecure key to easily use ssh -RUN /usr/sbin/enable_insecure_key +USER vlibras -#Mysql -RUN apt-get install -y mysql-client libmysqlclient-dev && apt-get clean -RUN gem install mysql2 +EXPOSE 8080 -ENV APP_HOME /myapp -RUN mkdir $APP_HOME -WORKDIR $APP_HOME - -ADD * $APP_HOME/ -RUN bundle install +VOLUME ["/myapp/log"] +VOLUME ["/vlibraslportal"] -ADD . $APP_HOME +ENTRYPOINT ["/docker-entrypoint.sh"] diff --git a/config/database.yml b/config/database.yml index 1122912..036f138 100755 --- a/config/database.yml +++ b/config/database.yml @@ -16,7 +16,7 @@ development: database: vlibrasvideo username: vlibrasuser password: vlibraspassword - host: db + host: vlibrasdb production: adapter: mysql2 @@ -24,4 +24,4 @@ production: database: vlibrasvideo username: vlibrasuser password: vlibraspassword - host: db + host: vlibrasdb diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100755 index 0000000..de32908 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,38 @@ +version: '2' +volumes: + web_data: + external: true + driver: 'null' + web_logs: + external: true + driver: 'null' + db_data: + external: true + driver: 'null' +services: + web: + image: hub.docker.planejamento.gov.br/vlibras/portal:coppe + environment: + DOMAIN_NAME: b-vlibras-dth-03.brazilsouth.cloudapp.azure.com:80 + VLIBRAS_API: b-vlibras-dth-03.brazilsouth.cloudapp.azure.com:8080 + VLIBRAS_API_URL: http://b-vlibras-dth-03.brazilsouth.cloudapp.azure.com:8080/api/ + volumes: + - web_data:/vlibraslportal/ + - web_logs:/myapp/log + links: + - redis:redis + - db:db + labels: + io.rancher.container.pull_image: always + db: + image: mysql:5.5 + environment: + MYSQL_DATABASE: vlibrasvideo + MYSQL_PASSWORD: vlibraspassword + MYSQL_ROOT_PASSWORD: vlibras + MYSQL_USER: vlibrasuser + volumes: + - db_data:/var/lib/mysql + redis: + image: capgov/redis:3.2.8 + diff --git a/docker-entrypoint.sh b/docker-entrypoint.sh new file mode 100755 index 0000000..346e0aa --- /dev/null +++ b/docker-entrypoint.sh @@ -0,0 +1,27 @@ +#!/bin/bash + +rake db:create db:setup + +PID="/myapp/tmp/pids/server.pid" + +if [ ! -z "$DATABASE_HOST" ]; then + sed -i "s/vlibrasdb/$DATABASE_HOST/g" $APP_HOME/config/database.yml +fi + +if [ ! -z "$DATABASE_DB" ]; then + sed -i "s/vlibrasvideo/$DATABASE_DB/g" $APP_HOME/config/database.yml +fi + +if [ ! -z "$DATABASE_USER" ]; then + sed -i "s/vlibrasuser/$DATABASE_USER/g" $APP_HOME/config/database.yml +fi + +if [ ! -z "$DATABASE_PASSWORD" ]; then + sed -i "s/vlibraspassword/$DATABASE_PASSWORD/g" $APP_HOME/config/database.yml +fi + +if [ -f $PID ] ; then + rm -f $PID +fi + +exec rails server -e production --port 8080 --binding 0.0.0.0 -- libgit2 0.21.2