Moving our website generating system to docker from Vagrant. (#1)
* Moving our tooling from using Vagrant to generate site using Middleman to using Docker.
* Using new dockerhub repo to store image which can be used to generate site. Image currently exists at apache/aurora-website with the tag dev
diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 0000000..2e4f4dd
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,21 @@
+FROM ubuntu:bionic
+
+# Port on which Middleman shows live preview
+EXPOSE 4567
+
+# Add RVM ppa
+RUN apt-get update && apt-get -y install software-properties-common && apt-add-repository -y ppa:rael-gc/rvm
+RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get -y install curl git rvm unzip tzdata
+
+# Change shell to be able to use RVM
+SHELL ["/bin/bash", "--login", "-c"]
+
+# Install Ruby 2.0.0 as this version is compatible with the middelman version we use
+RUN rvm install 2.0.0 && rvm use 2.0.0 --default
+
+# Install Middleman through bundle
+COPY Gemfile Gemfile.lock /middleman/
+RUN pushd /middleman && gem install bundler -v 1.7.3 && bundle install && popd
+
+WORKDIR /website
+ENTRYPOINT /bin/bash --login
\ No newline at end of file
diff --git a/README.md b/README.md
index 88faa97..ea2b4b7 100644
--- a/README.md
+++ b/README.md
@@ -11,7 +11,7 @@
The Aurora website is powered by [Middleman](http://middlemanapp.com/), a static website generator
written in ruby. If you'd like to learn more about Middleman and how it works, their official
websites have helpful documentation.
-
+
## Setup
For most website-related changes, knowledge of Middleman or Ruby are unnecessary; Middleman is
used to convert markdown files to HTML and handle dynamic templates.
@@ -21,7 +21,7 @@
* `source/`, which includes site templates and markdown files. This is the directory you will
revise documents in 99% of the time.
- * `publish/`, where static-generated HTML files app live. Files in this directory are generated
+ * `content/`, where static-generated HTML files app live. Files in this directory are generated
when the `rake2.0 build` command is run, and these files are served via HTTP on the Aurora
website.
* `tmp/`, a directory used when cloning the remote project repository before processing
@@ -31,16 +31,13 @@
testing the website during development. More info below.
## Running and Developing the Website
-### Setting up Local Dev Environment
-The build environment for the website is managed by Vagrant. To initialize the environment run:
- vagrant up
+### Setting up Local Dev Environment using Docker
+From the root of the repository run the following:
-This will prepare the environment and generate the site. Your local repository
-(the directory containing this README) will be mounted at `/vagrant` in the
-virtual machine.
+$ docker run -it -v $(pwd):/website -p 4567:4567 apache/aurora-website:dev
-**Note:** all rake commands must be run from `/vagrant`.
+Execute the remainder of the commands inside of this docker container.
### Generating the site
To generate the site one only needs to run `rake2.0` after performing the setup
@@ -63,12 +60,6 @@
task automates the process of fetching the markdown, performing some translations, and
storing it in a version-specific directory under `source/documentation`.
-First, prepare the vagrant environment and move into the `/vagrant` directory:
-
- $ vagrant up
- $ vagrant ssh
- vagrant@vagrant-ubuntu-trusty-64:~$ cd /vagrant
-
You will use the `generate_docs` rake task to fetch the docs you wish to place on the website.
This task takes two arguments - `title` and `git_tag`. The title is the name to give this branch
of documentation.
@@ -89,8 +80,10 @@
After completing an official Aurora release, you should add the new version of documentation and
advertise the release on the website.
+$RELEASE in this case is the number version of the release (i.e. 0.22.0).
+
First, add the new release to the top of `data/downloads.yml`.
-
+
# Add documentation for the new release
rake2.0 generate_docs[$RELEASE,$RELEASE]
@@ -100,30 +93,42 @@
# Render the docs.
rake2.0
-### Development
-To live edit the site run `rake2.0 dev` and then open a browser window to
-`http://192.168.33.10:4567`. Any change you make to the sources dir will
-be shown on the local dev site immediately. Errors will be shown in the
+### Development
+To live edit the site run `rake2.0 dev` and then open a browser window to
+`http://localhost:4567`. Any change you make to the sources dir will
+be shown on the local dev site immediately. Errors will be shown in the
console you launched `rake2.0 dev` within.
## Contributing Website Changes
Have you made local changes that you would like to contribute to the website?
-While we use Apache [ReviewBoard](http://reviews.apache.org) for changes to the primary Aurora
-codebase, website changes are currently reviewed by attaching diffs to Apache JIRA tickets.
+Make a PR to our website repository through Github.
## Publishing Changes to the Website
All project committers have access to commit to the Aurora website; we encourage those without
commit access to contribute changes by following the steps above.
-The website uses svnpubsub to sync changes in this SVN repository with the live site. The publish
-folder contains the websites content and when committed to the svn repository it will be
-automatically deployed. Note: there is sometimes a slight delay between committing to SVN and
-appearing online.
+The website uses Apache Infra tooling to sync this Git repository with the live site.
-Before commiting, ensure that changes from source/ have been properly built in the `publish/`
-directory. Changes will be published to the website by running:
+The content folder contains the websites content and when changes are committed to the asf-staging
+or asf-site branches, changes will be automatically deployed.
- svn commit -m "Message describing the website changes you've made."
+Before committing ensure that changes from source/ have been properly built in the `content/`
+directory.
+
+`$ git add content source`
+`$ git commit -m "Message describing the website changes you've made."`
+
+Updates to the current website should first be submitted as a Pull Request to the asf-staging branch.
+
+Once the PR has been merged in the asf-staging branch, a live preview will be available at:
+https://aurora.staged.apache.org/
+
+If the site looks good and functions correctly, a PR should be made to the asf-site branch
+from the asf-staging branch, squashing all commits into a single commit detailing
+the change (usually a release).
+
+Note: there is sometimes a slight delay between merging PRs and
+changes appearing online.
### Apache License
Except as otherwise noted this software is licensed under the
diff --git a/Vagrantfile b/Vagrantfile
deleted file mode 100644
index 848cf6d..0000000
--- a/Vagrantfile
+++ /dev/null
@@ -1,31 +0,0 @@
-# -*- mode: ruby -*-
-# vi: set ft=ruby :
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-# Vagrantfile API/syntax version. Don't touch unless you know what you're doing!
-VAGRANTFILE_API_VERSION = "2"
-
-Vagrant.require_version ">= 1.5.0"
-
-Vagrant.configure(2) do |config|
- config.vm.box = "ubuntu/trusty64"
-
- config.vm.network :private_network, ip: "192.168.33.10"
- config.vm.provider :virtualbox do |vb|
- vb.customize ["modifyvm", :id, "--memory", "4096"]
- vb.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
- end
- config.vm.provision "shell", path: "provision.sh"
-end
diff --git a/provision.sh b/provision.sh
deleted file mode 100644
index f03a022..0000000
--- a/provision.sh
+++ /dev/null
@@ -1,17 +0,0 @@
-#!/bin/bash
-
-apt-get update
-
-apt-get install -y \
- build-essential \
- git \
- ruby2.0 \
- ruby2.0-dev \
- subversion \
- zlib1g-dev \
- unzip
-
-gem2.0 install bundler
-cd /vagrant
-bundle install
-rake2.0