Merge pull request #7944 from mitchellh/sethvargo/docker_website
Use Docker-based build and deployments
This commit is contained in:
commit
e5f7d0db88
|
@ -1,4 +1,3 @@
|
||||||
source "https://rubygems.org"
|
source "https://rubygems.org"
|
||||||
|
|
||||||
gem "middleman-hashicorp",
|
gem "middleman-hashicorp", "0.3.4"
|
||||||
git: "https://github.com/hashicorp/middleman-hashicorp.git"
|
|
||||||
|
|
|
@ -1,23 +1,3 @@
|
||||||
GIT
|
|
||||||
remote: https://github.com/hashicorp/middleman-hashicorp.git
|
|
||||||
revision: 80ddc227b26cbbb3742d14396f26172174222080
|
|
||||||
specs:
|
|
||||||
middleman-hashicorp (0.2.0)
|
|
||||||
bootstrap-sass (~> 3.3)
|
|
||||||
builder (~> 3.2)
|
|
||||||
less (~> 2.6)
|
|
||||||
middleman (~> 3.4)
|
|
||||||
middleman-livereload (~> 3.4)
|
|
||||||
middleman-minify-html (~> 3.4)
|
|
||||||
middleman-syntax (~> 2.0)
|
|
||||||
rack-contrib (~> 1.2)
|
|
||||||
rack-protection (~> 1.5)
|
|
||||||
rack-rewrite (~> 1.5)
|
|
||||||
rack-ssl-enforcer (~> 0.2)
|
|
||||||
redcarpet (~> 3.2)
|
|
||||||
therubyracer (~> 0.12)
|
|
||||||
thin (~> 1.6)
|
|
||||||
|
|
||||||
GEM
|
GEM
|
||||||
remote: https://rubygems.org/
|
remote: https://rubygems.org/
|
||||||
specs:
|
specs:
|
||||||
|
@ -27,7 +7,7 @@ GEM
|
||||||
minitest (~> 5.1)
|
minitest (~> 5.1)
|
||||||
thread_safe (~> 0.3, >= 0.3.4)
|
thread_safe (~> 0.3, >= 0.3.4)
|
||||||
tzinfo (~> 1.1)
|
tzinfo (~> 1.1)
|
||||||
autoprefixer-rails (6.4.1.1)
|
autoprefixer-rails (6.5.1.1)
|
||||||
execjs
|
execjs
|
||||||
bootstrap-sass (3.3.7)
|
bootstrap-sass (3.3.7)
|
||||||
autoprefixer-rails (>= 5.2.1)
|
autoprefixer-rails (>= 5.2.1)
|
||||||
|
@ -44,7 +24,6 @@ GEM
|
||||||
coffee-script-source
|
coffee-script-source
|
||||||
execjs
|
execjs
|
||||||
coffee-script-source (1.10.0)
|
coffee-script-source (1.10.0)
|
||||||
commonjs (0.2.7)
|
|
||||||
compass (1.0.3)
|
compass (1.0.3)
|
||||||
chunky_png (~> 1.2)
|
chunky_png (~> 1.2)
|
||||||
compass-core (~> 1.0.2)
|
compass-core (~> 1.0.2)
|
||||||
|
@ -57,7 +36,6 @@ GEM
|
||||||
sass (>= 3.3.0, < 3.5)
|
sass (>= 3.3.0, < 3.5)
|
||||||
compass-import-once (1.0.5)
|
compass-import-once (1.0.5)
|
||||||
sass (>= 3.2, < 3.5)
|
sass (>= 3.2, < 3.5)
|
||||||
daemons (1.2.4)
|
|
||||||
em-websocket (0.5.1)
|
em-websocket (0.5.1)
|
||||||
eventmachine (>= 0.12.9)
|
eventmachine (>= 0.12.9)
|
||||||
http_parser.rb (~> 0.6.0)
|
http_parser.rb (~> 0.6.0)
|
||||||
|
@ -65,20 +43,15 @@ GEM
|
||||||
eventmachine (1.2.0.1)
|
eventmachine (1.2.0.1)
|
||||||
execjs (2.7.0)
|
execjs (2.7.0)
|
||||||
ffi (1.9.14)
|
ffi (1.9.14)
|
||||||
git-version-bump (0.15.1)
|
|
||||||
haml (4.0.7)
|
haml (4.0.7)
|
||||||
tilt
|
tilt
|
||||||
hike (1.2.3)
|
hike (1.2.3)
|
||||||
hooks (0.4.1)
|
hooks (0.4.1)
|
||||||
uber (~> 0.0.14)
|
uber (~> 0.0.14)
|
||||||
htmlcompressor (0.2.0)
|
|
||||||
http_parser.rb (0.6.0)
|
http_parser.rb (0.6.0)
|
||||||
i18n (0.7.0)
|
i18n (0.7.0)
|
||||||
json (1.8.3)
|
json (1.8.3)
|
||||||
kramdown (1.12.0)
|
kramdown (1.12.0)
|
||||||
less (2.6.0)
|
|
||||||
commonjs (~> 0.2.7)
|
|
||||||
libv8 (3.16.14.15)
|
|
||||||
listen (3.0.8)
|
listen (3.0.8)
|
||||||
rb-fsevent (~> 0.9, >= 0.9.4)
|
rb-fsevent (~> 0.9, >= 0.9.4)
|
||||||
rb-inotify (~> 0.9, >= 0.9.7)
|
rb-inotify (~> 0.9, >= 0.9.7)
|
||||||
|
@ -105,55 +78,49 @@ GEM
|
||||||
rack (>= 1.4.5, < 2.0)
|
rack (>= 1.4.5, < 2.0)
|
||||||
thor (>= 0.15.2, < 2.0)
|
thor (>= 0.15.2, < 2.0)
|
||||||
tilt (~> 1.4.1, < 2.0)
|
tilt (~> 1.4.1, < 2.0)
|
||||||
|
middleman-hashicorp (0.3.4)
|
||||||
|
bootstrap-sass (~> 3.3)
|
||||||
|
builder (~> 3.2)
|
||||||
|
middleman (~> 3.4)
|
||||||
|
middleman-livereload (~> 3.4)
|
||||||
|
middleman-syntax (~> 3.0)
|
||||||
|
redcarpet (~> 3.3)
|
||||||
middleman-livereload (3.4.6)
|
middleman-livereload (3.4.6)
|
||||||
em-websocket (~> 0.5.1)
|
em-websocket (~> 0.5.1)
|
||||||
middleman-core (>= 3.3)
|
middleman-core (>= 3.3)
|
||||||
rack-livereload (~> 0.3.15)
|
rack-livereload (~> 0.3.15)
|
||||||
middleman-minify-html (3.4.1)
|
|
||||||
htmlcompressor (~> 0.2.0)
|
|
||||||
middleman-core (>= 3.2)
|
|
||||||
middleman-sprockets (3.5.0)
|
middleman-sprockets (3.5.0)
|
||||||
middleman-core (>= 3.3)
|
middleman-core (>= 3.3)
|
||||||
sprockets (~> 2.12.1)
|
sprockets (~> 2.12.1)
|
||||||
sprockets-helpers (~> 1.1.0)
|
sprockets-helpers (~> 1.1.0)
|
||||||
sprockets-sass (~> 1.3.0)
|
sprockets-sass (~> 1.3.0)
|
||||||
middleman-syntax (2.1.0)
|
middleman-syntax (3.0.0)
|
||||||
middleman-core (>= 3.2)
|
middleman-core (>= 3.2)
|
||||||
rouge (~> 1.0)
|
rouge (~> 2.0)
|
||||||
mime-types (3.1)
|
mime-types (3.1)
|
||||||
mime-types-data (~> 3.2015)
|
mime-types-data (~> 3.2015)
|
||||||
mime-types-data (3.2016.0521)
|
mime-types-data (3.2016.0521)
|
||||||
mini_portile2 (2.1.0)
|
mini_portile2 (2.1.0)
|
||||||
minitest (5.9.1)
|
minitest (5.9.1)
|
||||||
multi_json (1.12.1)
|
multi_json (1.12.1)
|
||||||
nokogiri (1.6.8)
|
nokogiri (1.6.8.1)
|
||||||
mini_portile2 (~> 2.1.0)
|
mini_portile2 (~> 2.1.0)
|
||||||
pkg-config (~> 1.1.7)
|
|
||||||
padrino-helpers (0.12.8.1)
|
padrino-helpers (0.12.8.1)
|
||||||
i18n (~> 0.6, >= 0.6.7)
|
i18n (~> 0.6, >= 0.6.7)
|
||||||
padrino-support (= 0.12.8.1)
|
padrino-support (= 0.12.8.1)
|
||||||
tilt (~> 1.4.1)
|
tilt (~> 1.4.1)
|
||||||
padrino-support (0.12.8.1)
|
padrino-support (0.12.8.1)
|
||||||
activesupport (>= 3.1)
|
activesupport (>= 3.1)
|
||||||
pkg-config (1.1.7)
|
|
||||||
rack (1.6.4)
|
rack (1.6.4)
|
||||||
rack-contrib (1.4.0)
|
|
||||||
git-version-bump (~> 0.15)
|
|
||||||
rack (~> 1.4)
|
|
||||||
rack-livereload (0.3.16)
|
rack-livereload (0.3.16)
|
||||||
rack
|
rack
|
||||||
rack-protection (1.5.3)
|
|
||||||
rack
|
|
||||||
rack-rewrite (1.5.1)
|
|
||||||
rack-ssl-enforcer (0.2.9)
|
|
||||||
rack-test (0.6.3)
|
rack-test (0.6.3)
|
||||||
rack (>= 1.0)
|
rack (>= 1.0)
|
||||||
rb-fsevent (0.9.7)
|
rb-fsevent (0.9.8)
|
||||||
rb-inotify (0.9.7)
|
rb-inotify (0.9.7)
|
||||||
ffi (>= 0.5.0)
|
ffi (>= 0.5.0)
|
||||||
redcarpet (3.3.4)
|
redcarpet (3.3.4)
|
||||||
ref (2.0.0)
|
rouge (2.0.6)
|
||||||
rouge (1.11.1)
|
|
||||||
sass (3.4.22)
|
sass (3.4.22)
|
||||||
sprockets (2.12.4)
|
sprockets (2.12.4)
|
||||||
hike (~> 1.2)
|
hike (~> 1.2)
|
||||||
|
@ -165,13 +132,6 @@ GEM
|
||||||
sprockets-sass (1.3.1)
|
sprockets-sass (1.3.1)
|
||||||
sprockets (~> 2.0)
|
sprockets (~> 2.0)
|
||||||
tilt (~> 1.1)
|
tilt (~> 1.1)
|
||||||
therubyracer (0.12.2)
|
|
||||||
libv8 (~> 3.16.14.0)
|
|
||||||
ref
|
|
||||||
thin (1.7.0)
|
|
||||||
daemons (~> 1.0, >= 1.0.9)
|
|
||||||
eventmachine (~> 1.0, >= 1.0.4)
|
|
||||||
rack (>= 1, < 3)
|
|
||||||
thor (0.19.1)
|
thor (0.19.1)
|
||||||
thread_safe (0.3.5)
|
thread_safe (0.3.5)
|
||||||
tilt (1.4.1)
|
tilt (1.4.1)
|
||||||
|
@ -188,7 +148,7 @@ PLATFORMS
|
||||||
ruby
|
ruby
|
||||||
|
|
||||||
DEPENDENCIES
|
DEPENDENCIES
|
||||||
middleman-hashicorp!
|
middleman-hashicorp (= 0.3.4)
|
||||||
|
|
||||||
BUNDLED WITH
|
BUNDLED WITH
|
||||||
1.13.1
|
1.13.6
|
||||||
|
|
|
@ -1,10 +1,14 @@
|
||||||
all: build
|
VERSION?="0.3.4"
|
||||||
|
|
||||||
init:
|
website:
|
||||||
bundle
|
@echo "==> Starting website in Docker..."
|
||||||
|
@docker run \
|
||||||
|
--interactive \
|
||||||
|
--rm \
|
||||||
|
--tty \
|
||||||
|
--publish "4567:4567" \
|
||||||
|
--publish "35729:35729" \
|
||||||
|
--volume "$(shell pwd):/website" \
|
||||||
|
hashicorp/middleman-hashicorp:${VERSION}
|
||||||
|
|
||||||
dev: init
|
.PHONY: website
|
||||||
bundle exec middleman server
|
|
||||||
|
|
||||||
build: init
|
|
||||||
bundle exec middleman build
|
|
||||||
|
|
|
@ -1,20 +1,30 @@
|
||||||
# VagrantUp.com
|
# Vagrant Website
|
||||||
|
|
||||||
This is the repository for the [Vagrant website](https://www.vagrantup.com).
|
This subdirectory contains the entire source for the [Vagrant Website](https://www.vagrantup.com/).
|
||||||
|
This is a [Middleman](http://middlemanapp.com) project, which builds a static
|
||||||
This is a [Middleman](https://middlemanapp.com) project, which builds a static
|
site from these source files.
|
||||||
site from these source files. The site is hosted fronted by
|
|
||||||
[Fastly](https://www.fastly.com).
|
|
||||||
|
|
||||||
## Contributions Welcome!
|
## Contributions Welcome!
|
||||||
|
|
||||||
If you find a typo or you feel like you can improve the HTML, CSS, or
|
If you find a typo or you feel like you can improve the HTML, CSS, or
|
||||||
JavaScript, we welcome contributions. Feel free to open issues or pull
|
JavaScript, we welcome contributions. Feel free to open issues or pull
|
||||||
requests like any normal GitHub project, and we will merge it in.
|
requests like any normal GitHub project, and we'll merge it in.
|
||||||
|
|
||||||
## Running the Site Locally
|
## Running the Site Locally
|
||||||
|
|
||||||
Running the site locally is simple. Clone this repo and run `make dev`.
|
To run the site locally, clone this repository and run:
|
||||||
|
|
||||||
Then open up `localhost:4567`. Note that some URLs you may need to append
|
```shell
|
||||||
".html" to make them work (in the navigation and such).
|
$ make website
|
||||||
|
```
|
||||||
|
|
||||||
|
You must have Docker installed for this to work.
|
||||||
|
|
||||||
|
Alternatively, you can manually run the website like this:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
$ bundle
|
||||||
|
$ bundle exec middleman server
|
||||||
|
```
|
||||||
|
|
||||||
|
Then open up `http://localhost:4567`.
|
||||||
|
|
|
@ -8,15 +8,16 @@
|
||||||
"builders": [
|
"builders": [
|
||||||
{
|
{
|
||||||
"type": "docker",
|
"type": "docker",
|
||||||
"image": "ruby:2.3-slim",
|
"image": "hashicorp/middleman-hashicorp:0.3.4",
|
||||||
"commit": "true"
|
"discard": "true",
|
||||||
|
"run_command": ["-d", "-i", "-t", "{{ .Image }}", "/bin/sh"]
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"provisioners": [
|
"provisioners": [
|
||||||
{
|
{
|
||||||
"type": "file",
|
"type": "file",
|
||||||
"source": ".",
|
"source": ".",
|
||||||
"destination": "/app"
|
"destination": "/website"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "shell",
|
"type": "shell",
|
||||||
|
@ -27,16 +28,9 @@
|
||||||
"FASTLY_API_KEY={{ user `fastly_api_key` }}"
|
"FASTLY_API_KEY={{ user `fastly_api_key` }}"
|
||||||
],
|
],
|
||||||
"inline": [
|
"inline": [
|
||||||
"apt-get -qq update",
|
"bundle check || bundle install",
|
||||||
"apt-get -yqq install build-essential curl git libffi-dev wget",
|
|
||||||
"apt-get -yqq install python-pip",
|
|
||||||
"pip install s3cmd",
|
|
||||||
"cd /app",
|
|
||||||
|
|
||||||
"bundle check || bundle install --jobs 7",
|
|
||||||
"bundle exec middleman build",
|
"bundle exec middleman build",
|
||||||
|
"/bin/sh ./scripts/deploy.sh"
|
||||||
"/bin/bash ./scripts/deploy.sh"
|
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
#!/bin/bash
|
#!/bin/sh
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
PROJECT="vagrant"
|
PROJECT="vagrant"
|
||||||
|
@ -28,17 +28,14 @@ if ! command -v "s3cmd" >/dev/null 2>&1; then
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Get the parent directory of where this script is and change into our website
|
# Get the parent directory of where this script is and cd there
|
||||||
# directory
|
DIR="$(cd "$(dirname "$(readlink -f "$0")")/.." && pwd)"
|
||||||
SOURCE="${BASH_SOURCE[0]}"
|
|
||||||
while [ -h "$SOURCE" ] ; do SOURCE="$(readlink "$SOURCE")"; done
|
|
||||||
DIR="$(cd -P "$( dirname "$SOURCE" )/.." && pwd)"
|
|
||||||
|
|
||||||
# Delete any .DS_Store files for our OS X friends.
|
# Delete any .DS_Store files for our OS X friends.
|
||||||
find "$DIR" -type f -name '.DS_Store' -delete
|
find "$DIR" -type f -name '.DS_Store' -delete
|
||||||
|
|
||||||
# Upload the files to S3 - we disable mime-type detection by the python library
|
# Upload the files to S3 - we disable mime-type detection by the python library
|
||||||
# and just guess from the file extension because it is surprisingly more
|
# and just guess from the file extension because it's surprisingly more
|
||||||
# accurate, especially for CSS and javascript. We also tag the uploaded files
|
# accurate, especially for CSS and javascript. We also tag the uploaded files
|
||||||
# with the proper Surrogate-Key, which we will later purge in our API call to
|
# with the proper Surrogate-Key, which we will later purge in our API call to
|
||||||
# Fastly.
|
# Fastly.
|
||||||
|
@ -106,10 +103,16 @@ fi
|
||||||
# Warm the cache with recursive wget.
|
# Warm the cache with recursive wget.
|
||||||
if [ -z "$NO_WARM" ]; then
|
if [ -z "$NO_WARM" ]; then
|
||||||
echo "Warming Fastly cache..."
|
echo "Warming Fastly cache..."
|
||||||
|
echo ""
|
||||||
|
echo "If this step fails, there are likely missing or broken assets or links"
|
||||||
|
echo "on the website. Run the following command manually on your laptop, and"
|
||||||
|
echo "search for \"ERROR\" in the output:"
|
||||||
|
echo ""
|
||||||
|
echo "wget --recursive --delete-after https://$PROJECT_URL/"
|
||||||
|
echo ""
|
||||||
wget \
|
wget \
|
||||||
--recursive \
|
--recursive \
|
||||||
--delete-after \
|
--delete-after \
|
||||||
--level 0 \
|
|
||||||
--quiet \
|
--quiet \
|
||||||
"https://$PROJECT_URL/"
|
"https://$PROJECT_URL/"
|
||||||
fi
|
fi
|
||||||
|
|
|
@ -32,7 +32,7 @@
|
||||||
<div class="navbar-header">
|
<div class="navbar-header">
|
||||||
<div class="navbar-brand">
|
<div class="navbar-brand">
|
||||||
<a class="logo" href="/">Vagrant</a>
|
<a class="logo" href="/">Vagrant</a>
|
||||||
<a class="by-hashicorp gray" href="https://www.hashicorp.com/"><span class="svg-wrap">by</span><%= partial "layouts/svg/svg-by-hashicorp" %><%= partial "layouts/svg/svg-hashicorp-logo" %>Hashicorp</a>
|
<a class="by-hashicorp gray" href="https://www.hashicorp.com/"><span class="svg-wrap">by</span><%= partial "layouts/svg/svg-by-hashicorp" %><%= partial "layouts/svg/svg-hashicorp-logo" %>HashiCorp</a>
|
||||||
</div>
|
</div>
|
||||||
<button class="navbar-toggle gray" type="button">
|
<button class="navbar-toggle gray" type="button">
|
||||||
<span class="sr-only">Toggle navigation</span>
|
<span class="sr-only">Toggle navigation</span>
|
||||||
|
|
Loading…
Reference in New Issue