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