diff --git a/Gemfile b/Gemfile index de8bdb1..d48789b 100644 --- a/Gemfile +++ b/Gemfile @@ -7,5 +7,5 @@ git_source(:github) {|repo_name| "https://github.com/#{repo_name}" } gem 'github-pages', group: :jekyll_plugins -gem 'wdm', '>= 0.1.0' if Gem.win_platform? -gem "webrick", "~> 1.8" +gem 'wdm', '>= 0.1.0' if Gem.win_platform? +gem "webrick", "~> 1.8" diff --git a/Gemfile.lock b/Gemfile.lock index 88a6612..38efa90 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -32,8 +32,7 @@ GEM faraday-net_http (>= 2.0, < 3.1) ruby2_keywords (>= 0.0.4) faraday-net_http (3.0.2) - ffi (1.17.0-x64-mingw-ucrt) - ffi (1.17.0-x64-mingw32) + ffi (1.17.0) forwardable-extended (2.6.0) gemoji (4.1.0) github-pages (231) @@ -219,8 +218,6 @@ GEM nokogiri (1.13.10) mini_portile2 (~> 2.8.0) racc (~> 1.4) - nokogiri (1.13.10-x64-mingw32) - racc (~> 1.4) octokit (4.25.1) faraday (>= 1, < 3) sawyer (~> 0.9) @@ -254,17 +251,16 @@ GEM tzinfo (2.0.6) concurrent-ruby (~> 1.0) unicode-display_width (1.8.0) - wdm (0.2.0) webrick (1.8.1) zeitwerk (2.6.17) PLATFORMS - x64-mingw-ucrt x64-mingw32 + x64-unknown + x86_64-linux DEPENDENCIES github-pages - wdm (>= 0.1.0) webrick (~> 1.8) BUNDLED WITH diff --git a/README.md b/README.md index 23549b9..a515923 100644 --- a/README.md +++ b/README.md @@ -33,7 +33,7 @@ Things to look out for when testing Before pull requests are merged maintainers should test all aspects of the site. -# Getting started with this site and Jekyll +# Getting started with this site ## What is Jekyll? @@ -41,9 +41,35 @@ Jekyll is a static site generator. It takes text written in your favorite markup Quoted from https://jekyllrb.com/docs/ +## Docker quickstart +You may run Jekyll to serve the CodeWith website locally via docker + +You must first install [Docker](https://www.docker.com/) for your operating system. + +Next, you must then build the docker container, +that will install the dependencies required for the application to run. You will need to run this command +at any point the Dockerfile changes to ensure you have the latest version of the container. + +```bash +docker build . -f docker/bundle.Dockerfile --tag 'codewithgroup-website' +``` + +At any point at which you then want to run the server, use + +```bash +docker run -it -v .:/app -p 127.0.0.1:4000:4000 codewithgroup-website +``` + +Despite what the output may say, you will access the CodeWith website at `127.0.0.1:4000` + +Changes to files within the project will prompt a recompile after some time, you'll need to refresh the page +you're viewing in the browser to see the changes. + ## Jekyll setup -If you're familiar with Ruby gems, run the following: +Provided you have followed the steps above, you may wish to decide to skip this step. + +However, if serving via Docker is unsuccessful, and you're familiar with Ruby gems, try running the following: `gem install bundle` diff --git a/docker/bundle.Dockerfile b/docker/bundle.Dockerfile index af0d3c8..392f846 100644 --- a/docker/bundle.Dockerfile +++ b/docker/bundle.Dockerfile @@ -1,6 +1,11 @@ FROM ruby:2.7.1 RUN mkdir /app +COPY . /app/ + WORKDIR /app -COPY Gemfile /app/Gemfile -ENTRYPOINT [ "bundle" ] +RUN gem install bundler:2.3.17 +RUN bundle install + +ENTRYPOINT [ "bundle", "exec", "jekyll", "serve", "--host", "0.0.0.0", "--force_polling"] +EXPOSE 4000 \ No newline at end of file