diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..0338ac2 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,45 @@ +.git +.gitignore +Dockerfile + +# +# +# COPIED FROM .gitignore , please keep it in sync +# +# + +# Logs +logs +*.log +*.swp +*.swo + +# Runtime data +pids +*.pid +*.seed + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage + +# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +# node-waf configuration +.lock-wscript + +# Compiled binary addons (http://nodejs.org/api/addons.html) +build/Release + +# Dependency directory +# https://www.npmjs.org/doc/misc/npm-faq.html#should-i-check-my-node_modules-folder-into-git +node_modules + +# Ignore build files +public +/errorShots +/old +/build diff --git a/Dockerfile b/Dockerfile index a6279cc..2e71e6c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,21 +1,22 @@ -FROM node:10-slim +FROM node:10 as builder +WORKDIR /maputnik -RUN apt-get update && apt-get install -y --no-install-recommends \ - git \ - python \ - && rm -rf /var/lib/apt/lists/* +# Only copy package.json to prevent npm install from running on every build +COPY package.json package-lock.json ./ +RUN npm install -EXPOSE 8888 - -ENV HOME /maputnik -RUN mkdir ${HOME} - -COPY . ${HOME}/ - -WORKDIR ${HOME} - -RUN npm install -d +# Build maputnik +# TODO: we should also do a npm run test here (needs more dependencies) +COPY . . RUN npm run build -WORKDIR ${HOME}/build/build -CMD python -m SimpleHTTPServer 8888 +#--------------------------------------------------------------------------- + +# Create a clean python-based image with just the build results +FROM python:3-slim +WORKDIR /maputnik + +COPY --from=builder /maputnik/build/build . + +EXPOSE 8888 +CMD python -m http.server 8888 diff --git a/README.md b/README.md index 7209715..6ca78cd 100644 --- a/README.md +++ b/README.md @@ -17,16 +17,20 @@ A free and open visual editor for the [Mapbox GL styles](https://www.mapbox.com/mapbox-gl-style-spec/) targeted at developers and map designers. +## Usage + - :link: Design your maps online at **** (all in local storage) - :link: Use the [Maputnik CLI](https://github.com/maputnik/editor/wiki/Maputnik-CLI) for local style development +- In a Docker, run this command and browse to http://localhost:8888, Ctrl+C to stop the server. -Mapbox has built one of the best and most amazing OSS ecosystems. A key component to ensure its longevity and independence is an OSS map designer. - +```bash +docker run -it --rm -p 8888:8888 maputnik/editor +``` ## Donations +Mapbox has built one of the best and most amazing OSS ecosystems. A key component to ensure its longevity and independence is an OSS map designer. If you or your organisation has seen value from Maputnik, please consider donating at - ## Documentation The documentation can be found in the [Wiki](https://github.com/maputnik/editor/wiki). You are welcome to collaborate!