From a84d9eabf1b921086a688f81df28b0f21ba4df19 Mon Sep 17 00:00:00 2001 From: Christoph Helma Date: Tue, 3 Sep 2019 13:06:00 +0200 Subject: docker installation as gem, links with port numbers, version 1.4.0 --- VERSION | 2 +- application.rb | 12 +++++++++--- bin/lazar-start.sh | 1 + docker/Dockerfile | 46 ++++++++++++++++++---------------------------- docker/start.sh | 4 ++-- views/layout.haml | 4 +--- 6 files changed, 32 insertions(+), 37 deletions(-) diff --git a/VERSION b/VERSION index acdfdf4..88c5fb8 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.4.0.pre.0 +1.4.0 diff --git a/application.rb b/application.rb index fb03a72..e23c042 100644 --- a/application.rb +++ b/application.rb @@ -18,16 +18,22 @@ PUBCHEM_CID_URI = PUBCHEM_URI.split("/")[0..-3].join("/")+"/compound/" "validation.rb" ].each{ |f| require_relative "./lib/#{f}" } -configure :production, :development do +configure :production do STDOUT.sync = true $logger = Logger.new(STDOUT) - #$logger.level = Logger::DEBUG +end + +configure :development do + STDOUT.sync = true + $logger = Logger.new(STDOUT) + $logger.level = Logger::DEBUG end before do # use this hostname method instead to('/') # allowes to set https for xhr requests - $host_with_port = request.host =~ /localhost/ ? request.host_with_port : request.host + #$host_with_port = request.host =~ /localhost/ ? request.host_with_port : request.host + $host_with_port = request.host_with_port $paths = [ "api", "compound", diff --git a/bin/lazar-start.sh b/bin/lazar-start.sh index cf2af36..f83888e 100755 --- a/bin/lazar-start.sh +++ b/bin/lazar-start.sh @@ -3,6 +3,7 @@ sudo mongod & R CMD Rserve --vanilla & LAZARPATH=$(gem path lazar-gui) cd $LAZARPATH +cd $(gem which "lazar-gui"|sed 's#/lib/lazar-gui.rb/##') unicorn -c unicorn.rb -E production exit 0 diff --git a/docker/Dockerfile b/docker/Dockerfile index a606b9a..b7ba3c1 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -23,12 +23,17 @@ RUN pacman -Scc --noconfirm RUN R -e "install.packages('Rserve', repos='http://rforge.net/')" RUN pip install xlsx2csv + +# install lazar-gui gem +RUN echo 'gem: --no-document' > /etc/gemrc +RUN gem install lazar-gui + RUN useradd -ms /bin/bash ist -# mongodb has been removed from main repositories USER ist WORKDIR /home/ist RUN mkdir data +# mongodb has been removed from main repositories, AUR installation RUN mkdir src WORKDIR /home/ist/src RUN wget https://aur.archlinux.org/cgit/aur.git/snapshot/mongodb-bin.tar.gz @@ -36,38 +41,23 @@ RUN tar -xvzf mongodb-bin.tar.gz WORKDIR /home/ist/src/mongodb-bin RUN makepkg -s --noconfirm -# installation requires root -USER root -RUN pacman -U --noconfirm /home/ist/src/mongodb-bin/mongodb-bin*.pkg.tar.xz - -# install lazar-gui gem -RUN echo 'gem: --no-document' > /etc/gemrc - -#RUN gem install lazar-gui -RUN gem install lazar -RUN gem install qsar-report -RUN gem install sinatra haml sass rdiscount unicorn - -USER ist -WORKDIR /home/ist -RUN rm -r src - -# lazar-gui -RUN git clone https://git.in-silico.ch/lazar-gui -WORKDIR lazar-gui -RUN git checkout prerelease - -# SWAGGER for API +# rest api swagger gui WORKDIR /home/ist RUN git clone https://github.com/swagger-api/swagger-ui.git COPY swagger.html /home/ist/swagger-ui/dist/index.html -# TODO adjust to lazar-gui gem path -RUN ln -s /home/ist/swagger-ui/dist/swagger-ui-bundle.js /home/ist/lazar-gui/public/swagger-ui-bundle.js -RUN ln -s /home/ist/swagger-ui/dist/swagger-ui-standalone-preset.js /home/ist/lazar-gui/public/swagger-ui-standalone-preset.js -RUN ln -s /home/ist/swagger-ui/dist/swagger-ui.css /home/ist/lazar-gui/public/swagger-ui.css - # start script COPY start.sh /home/ist/start.sh +# mongodb installation requires root +USER root +RUN pacman -U --noconfirm /home/ist/src/mongodb-bin/mongodb-bin*.pkg.tar.xz + +# swagger links +RUN ln -s /home/ist/swagger-ui/dist/swagger-ui-bundle.js $(gem which "lazar-gui"|sed 's#/lib/lazar-gui.rb/##')/public/swagger-ui-bundle.js +RUN ln -s /home/ist/swagger-ui/dist/swagger-ui-standalone-preset.js $(gem which "lazar-gui"|sed 's#/lib/lazar-gui.rb/##')/public/swagger-ui-standalone-preset.js +RUN ln -s /home/ist/swagger-ui/dist/swagger-ui.css $(gem which "lazar-gui"|sed 's#/lib/lazar-gui.rb/##')/public/swagger-ui.css + +USER ist +RUN rm -r /home/ist/src ENTRYPOINT ["/home/ist/start.sh"] diff --git a/docker/start.sh b/docker/start.sh index ad40a0e..07fefde 100755 --- a/docker/start.sh +++ b/docker/start.sh @@ -5,8 +5,8 @@ mongod --bind_ip 127.0.0.1 --dbpath ~/data & R CMD Rserve --vanilla & # import data -ruby -e "require 'lazar'; include OpenTox; Import.public_data" +ruby -e "require 'lazar'; include OpenTox; Import.public_data if Model::Validation.all.empty?" # start lazar service -cd $HOME/lazar-gui +cd $(gem which lazar-gui|sed 's#/lib/lazar-gui.rb/##') unicorn -p 8088 -E production diff --git a/views/layout.haml b/views/layout.haml index 8547e13..8cd5dfb 100644 --- a/views/layout.haml +++ b/views/layout.haml @@ -34,9 +34,7 @@ %div.container-fluid %topline.alert %p - Problems, bugs, ideas for improvements ? Please report at our - %a{:href => 'https://github.com/opentox/lazar-gui/issues', :rel => "external"} issue tracker - , check out the + Problems, bugs or ideas for improvements ? Please check the %a{:href=> "//#{$host_with_port}/predict/faq"} FAQ page or send us an email. %a{ :href=>"mailto:info@in-silico.ch?subject=[lazar v#{@version}]", :target=>"_top"} -- cgit v1.2.3