diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..c9813a3 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,14 @@ +FROM ruby:2.3.1 + +RUN mkdir -p $HOME/.config/goohub + +RUN echo 'gem: --no-ri --no-rdoc' > $HOME/.gemrc + +ARG GOOHUB_VERSION +ENV GOOHUB_VERSION $GOOHUB_VERSION + +COPY pkg/goohub-${GOOHUB_VERSION}.gem /tmp +RUN gem install /tmp/goohub-${GOOHUB_VERSION}.gem + +ENTRYPOINT [ "goohub" ] +CMD [ "help" ] diff --git a/README.org b/README.org index a5c9fc4..6717809 100644 --- a/README.org +++ b/README.org @@ -1,11 +1,44 @@ #+TITLE: Goohub -- CLI filter for Google calendar -# * Installation +* Installation +Goohub requires Ruby 2.3 or newer. + # #+BEGIN_SRC sh # #+END_SRC -# * Setup +* Setup # #+BEGIN_SRC sh # #+END_SRC + +* Use with Docker and docker-compose + +** For use +Goohub images are in nomlab/goohub, DockerHub. +You can build containers from it using docker-compose.yml easily. + +#+BEGIN_SRC sh +$ docker-compose run --rm goohub help +#+END_SRC + +** For development +You can use Docker for development. + +1. Create gem pakage + +#+BEGIN_SRC sh +$ bundle exec rake build +#+END_SRC + +2. Build image from pakage + +#+BEGIN_SRC sh +$ bundle exec rake docker:build +#+END_SRC + +3. Push image to DockerHub + +#+BEGIN_SRC sh +$ bundle exec rake docker:push +#+END_SRC diff --git a/Rakefile b/Rakefile index b7e9ed5..fd50120 100644 --- a/Rakefile +++ b/Rakefile @@ -3,4 +3,19 @@ require "rspec/core/rake_task" RSpec::Core::RakeTask.new(:spec) +namespace :docker do + tag = "nomlab/goohub" + + desc "Build Dokcer image from Dockerfile" + task :build do + version = Goohub::VERSION + system "docker build --build-arg GOOHUB_VERSION=#{version} -t #{tag} ." + end + + desc "Push current Docker image to Docker Hub" + task :push do + system "docker push #{tag}" + end +end + task :default => :spec diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..5f89e1b --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,12 @@ +version: '3' +services: + redis: + container_name: redis + image: redis + goohub: + container_name: goohub + image: nomlab/goohub + links: + - redis + volumes: + - $HOME/.config/goohub:/root/.config/goohub diff --git a/goohub.gemspec b/goohub.gemspec index ca9fa02..f49d2f1 100644 --- a/goohub.gemspec +++ b/goohub.gemspec @@ -26,7 +26,7 @@ Gem::Specification.new do |spec| spec.require_paths = ["lib"] spec.add_runtime_dependency "clian", "~> 0.3.0" - spec.add_development_dependency "redis" + spec.add_runtime_dependency "redis" spec.add_development_dependency "bundler", "~> 1.13" spec.add_development_dependency "rake", "~> 10.0"