Webpack-based development and build toolchain in a container
Develop and build JavaScript applications using webpack and webpack-dev-server with ease! Get all the bells and whistles of modern Node.js and/or web application development without the hassle of installing an environment.
This image uses the official Node.js image on the Docker Hub as it's base, following their tag convention. Below is a list of currently available tags:
Tags | Environment |
---|---|
latest | Node.js latest on Debian Jessie |
8 | Node.js 8 latest on Debian Jessie |
7 | Node.js 7 latest on Debian Jessie |
6 | Node.js 6 latest on Debian Jessie |
4 | Node.js 4 latest on Debian Jessie |
wheezy | Node.js latest on Debian Wheezy |
slim | Node.js latest on Debian Jessie |
8-wheezy | Node.js 8 latest on Debian Wheezy |
8-slim | Node.js 8 latest on Debian Jessie |
7-wheezy | Node.js 7 latest on Debian Wheezy |
7-slim | Node.js 7 latest on Debian Jessie |
6-wheezy | Node.js 6 latest on Debian Wheezy |
6-slim | Node.js 6 latest on Debian Jessie |
4-wheezy | Node.js 4 latest on Debian Wheezy |
4-slim | Node.js 4 latest on Debian Jessie |
Install latest:
$ docker pull jmfirth/webpack
The image preinstalls webpack and webpack-dev-server for use in the interactive docker shell. Any valid webpack and webpack-dev-server command can be run.
An example of installing project npm dependencies.
Note: Assumes that project.json
exists at source root.
Note: Yarn is also available globally if you prefer!
$ docker run \
--rm \
-i \
-t \
-v /path/to/source:/app \
jmfirth/webpack \
npm install --no-bin-links
An example of watching and serving the app using webpack-dev-server.
Note: Assumes that default webpack.config.js
exists at source root.
$ docker run \
--rm \
-i \
-t \
-v /path/to/source:/app \
-p 3000:8080 \
jmfirth/webpack \
webpack-dev-server --hot --inline --progress --host 0.0.0.0
An example of building the app with webpack.
Note: Assumes that default webpack.config.js
exists at source root.
$ docker run \
--rm \
-i \
-t \
-v /path/to/source:/app \
jmfirth/webpack \
webpack
Create a docker machine:
# create a docker machine called "site"
$ docker-machine create site --driver=virtualbox
# get environment variables to new vm
$ eval "$(docker-machine env site)"
Obtain and prepare source:
# get some source that uses webpack
$ git clone https://github.com/petehunt/react-webpack-template.git src
$ cd src
# install npm dependencies
$ docker run \
--rm \
-i \
-t \
-v /path/to/src:/app \
jmfirth/webpack \
npm install --no-bin-links
Modify the webpack.config.js
file to watch by polling:
watchOptions: {
poll: true
}
Serve the app:
# serve app through webpack-dev-server
$ docker run \
--rm \
-i \
-t \
-v /path/to/src:/app \
-p 3000:8080 \
jmfirth/webpack \
webpack-dev-server --hot --inline --progress --host 0.0.0.0