diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml
new file mode 100644
index 00000000..c4f7c606
--- /dev/null
+++ b/.github/workflows/docker-publish.yml
@@ -0,0 +1,69 @@
+name: Docker
+
+on:
+ push:
+ # Publish `master` as Docker `latest` image.
+ branches:
+ - master
+
+ # Publish `v1.2.3` tags as releases.
+ tags:
+ - v*
+
+ # Run tests for all PRs to master and develop.
+ pull_request:
+ branches:
+ - master
+ - develop
+
+env:
+ IMAGE_NAME: mermaid-live-editor
+
+jobs:
+ test:
+ runs-on: ubuntu-latest
+
+ steps:
+ - uses: actions/checkout@v2
+
+ - name: Run tests
+ run: |
+ docker build . --file Dockerfile
+
+ push:
+ # Ensure test job passes before pushing image.
+ needs: test
+
+ runs-on: ubuntu-latest
+ if: github.event_name == 'push'
+
+ steps:
+ - uses: actions/checkout@v2
+
+ - name: Build image
+ run: docker build . --file Dockerfile --tag $IMAGE_NAME
+
+ - name: Log into registry
+ run: echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u ${{ github.actor }} --password-stdin
+
+ - name: Push image
+ run: |
+ IMAGE_ID=ghcr.io/${{ github.repository_owner }}/$IMAGE_NAME
+
+ # Change all uppercase to lowercase
+ IMAGE_ID=$(echo $IMAGE_ID | tr '[A-Z]' '[a-z]')
+
+ # Strip git ref prefix from version
+ VERSION=$(echo "${{ github.ref }}" | sed -e 's,.*/\(.*\),\1,')
+
+ # Strip "v" prefix from tag name
+ [[ "${{ github.ref }}" == "refs/tags/"* ]] && VERSION=$(echo $VERSION | sed -e 's/^v//')
+
+ # Use Docker `latest` tag convention
+ [ "$VERSION" == "master" ] && VERSION=latest
+
+ echo IMAGE_ID=$IMAGE_ID
+ echo VERSION=$VERSION
+
+ docker tag $IMAGE_NAME $IMAGE_ID:$VERSION
+ docker push $IMAGE_ID:$VERSION
diff --git a/README.md b/README.md
index a7cd5804..0bb67c1a 100644
--- a/README.md
+++ b/README.md
@@ -19,6 +19,14 @@ Edit, preview and share mermaid charts/diagrams.
You can try out a live version [here](https://mermaid-js.github.io/mermaid-live-editor/).
+## Docker
+
+```bash
+docker run --publish 8000:80 ghcr.io/mermaid-js/mermaid-live-editor
+```
+
+Then open http://localhost:8000
+
## Setup
[Volta](https://volta.sh) is used for managing node and yarn versions.
diff --git a/package.json b/package.json
index 2f4589eb..61cde987 100644
--- a/package.json
+++ b/package.json
@@ -49,7 +49,7 @@
"@macfja/svelte-persistent-store": "^1.1.1",
"analytics": "^0.7.5",
"js-base64": "^3.6.1",
- "mermaid": "^8.10.1",
+ "mermaid": "^8.10.2",
"moment": "^2.29.1",
"monaco-editor": "^0.24.0",
"random-word-slugs": "^0.0.2"
diff --git a/src/app.html b/src/app.html
index 9fd76e48..c012987c 100644
--- a/src/app.html
+++ b/src/app.html
@@ -20,8 +20,8 @@
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.2/css/all.min.css"
/>