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 b81fc82..7053358 100644 --- a/README.md +++ b/README.md @@ -26,6 +26,13 @@ Mapbox has built one of the best and most amazing OSS ecosystems. A key componen ## Donations If you or your organisation has seen value from Maputnik, please consider donating at +## Using + +The quickest way is to use docker, even without cloning the repo. Run this command and open your browser to http://localhost:8888 . Ctrl+C to stop the server. + +```bash +docker run -it -p 8888:8888 maputnik +``` ## Documentation diff --git a/package.json b/package.json index 170761c..e38ac40 100644 --- a/package.json +++ b/package.json @@ -17,6 +17,9 @@ "url": "https://github.com/maputnik/editor" }, "author": "Lukas Martinelli", + "contributors": [ + "Yuri Astrakhan " + ], "license": "MIT", "homepage": "https://github.com/maputnik/editor#readme", "dependencies": {