{"id":26091698,"url":"https://github.com/techrail/mmistakes-docker","last_synced_at":"2026-03-09T02:32:48.910Z","repository":{"id":184165719,"uuid":"593851297","full_name":"techrail/mmistakes-docker","owner":"techrail","description":null,"archived":false,"fork":false,"pushed_at":"2025-09-13T08:36:46.000Z","size":9,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-09-13T10:50:25.366Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Dockerfile","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/techrail.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-01-27T01:09:18.000Z","updated_at":"2025-09-13T08:36:49.000Z","dependencies_parsed_at":"2025-03-09T10:34:04.417Z","dependency_job_id":null,"html_url":"https://github.com/techrail/mmistakes-docker","commit_stats":null,"previous_names":["techrail/mmistakes-docker"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/techrail/mmistakes-docker","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/techrail%2Fmmistakes-docker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/techrail%2Fmmistakes-docker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/techrail%2Fmmistakes-docker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/techrail%2Fmmistakes-docker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/techrail","download_url":"https://codeload.github.com/techrail/mmistakes-docker/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/techrail%2Fmmistakes-docker/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30280867,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-09T02:23:26.802Z","status":"ssl_error","status_checked_at":"2026-03-09T02:22:46.175Z","response_time":61,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-03-09T10:23:10.122Z","updated_at":"2026-03-09T02:32:48.865Z","avatar_url":"https://github.com/techrail.png","language":"Dockerfile","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Docker Image for Minimal Mistakes Jekyll Theme\n\nThis repo contains the Dockerfile (and the Gemfile) for the awesome [Minimal Mistakes](https://mmistakes.github.io/minimal-mistakes/) theme for [Jekyll](https://jekyllrb.com/). The image is published in Docker Hub at https://hub.docker.com/r/techrail/mmistakes. You will have to pull from there to use it locally.\n\nI ([Vaibhav](https://github.com/vaibhav-kaushal)) built this image because I keep installing and reinstalling OSes and Virtual Machines and sometimes change my servers. I am fond of the theme and have to install everything everywhere every single time. That's too much work. In addition, there is a problem with jekyll build which causes pain at times (zsh users might have faced it more than others; it involves `LANG` and `LC_CTYPE`). I wanted to get rid of these problems. Creating a docker image that works is the best I could come up with. \n\n**NOTE**: This image is tested on Ubuntu and macOS only. It should work for most versions of macOS typically in use today and other Linux distros well. It should also work on a Windows machine but I cannot help you much with that if you fall into troubles.\n\n## Which tag should I use?\nI have built the image for both ARM64 (should work on Mac with Apple Silicon, AWS G-series machines, Raspberry Pi etc.) and AMD64 (Typical PC/Laptop running Windows or Linux, older Macs with Intel chips, servers with Intel processors).\n\n**IMPORTANT NOTE**: I tried building the `latest` using `docker buildx` but that keeps failing so I do not have a multi-platform single docker image. So you can't really do `docker run techrail/mmistakes` (it would fail). Instead you should use either `latest-amd64` or `latest-arm64` tags.\n\n## How to use this docker image to build your Jekyll site?\n\nThe container has **jekyll** and **minimal mistakes** gem installed. However, there is a small caveat to using it directly.\n\n## Caveats and workaround\nOnce the generation is complete, the generated site is owned by `root`. That's because Jekyll inside the container runs as the root user inside the container and hence the owner gid and uid is set to that; which is normal for most containers but the output is not the most desirable one.\n\nTo overcome that, there is a convenience script named `build_site.zsh` in the image which you can use to change the permissions of the directory where generated site is placed (after generation). That script needs to be passed the user's uid and gid (you will see how to use it below).\n\nThe image does not have an [ENTRYPOINT](https://docs.docker.com/engine/reference/builder/#entrypoint) or [CMD](https://docs.docker.com/engine/reference/builder/#cmd) as of now. To run the image, you can run it manually like this:\n\n### For Intel/AMD machines\nFor machines running on AMD64 architecture (such as MacBooks with Intel Chips, Laptops and Desktops containing Intel or AMD processors or most Machine Instances by cloud providers like DigitalOcean, GCP, Azure etc.):\n\nFirst pull the image:\n\n```\ndocker pull techrail/mmistakes:latest-amd64\n```\n\nThen, to run it:\n\n```\nuid=$(id -u)\ngid=$(id -g)\nMM_SOURCE=/path/to/site_contents\nMM_DESTINATION=/path/to/generated_html\n\ndocker run -t -i \\\n  --mount \"type=bind,target=/source,source=$MM_SOURCE\"\\\n  --mount \"type=bind,target=/destination,source=$MM_DESTINATION\"\\\n  techrail/mmistakes:latest-amd64\\\n  /app/build_site.zsh $uid $gid\n```\n\nPlease replace `/path/to/site_contents` with the path where your `_config.yml` is there (along with all your site markdown files). Also, replace `/path/to/generated_html` with the path where you want the generated site contents to be placed. \n\n### For ARM64 machines\nFor machines running on ARM64 architecture (such as MacBooks with Apple Silicon, Raspberry Pi, Orange Pi or AWS's G-series EC2 instances etc.):\n\nFirst pull the image:\n\n```\ndocker pull techrail/mmistakes:latest-arm64\n```\n\nThen, to run it:\n\n```\nuid=$(id -u)\ngid=$(id -g)\nMM_SOURCE=/path/to/site_contents\nMM_DESTINATION=/path/to/generated_html\n\ndocker run -t -i \\\n  --mount \"type=bind,target=/source,source=$MM_SOURCE\"\\\n  --mount \"type=bind,target=/destination,source=$MM_DESTINATION\"\\\n  techrail/mmistakes:latest-arm64\\\n  /app/build_site.zsh $uid $gid\n```\n\nOf course, replace `/path/to/site_contents` with the path where your `_config.yml` is there (along with all your site markdown files). Also, replace `/path/to/generated_html` with the path where you want the generated site contents to be placed. \n\n## Notes for myself\n... because I keep forgetting how to tag and push docker images (if you use CI/CD pipelines for all the grunt work, this happens):\n\n```\ndocker tag mmistakes:latest techrail/mmistakes:1.1.0-amd64\ndocker tag mmistakes:latest techrail/mmistakes:latest-amd64\ndocker tag mmistakes:latest techrail/mmistakes:latest\ndocker push techrail/mmistakes:1.1.0-amd64\ndocker push techrail/mmistakes:latest-amd64\ndocker push techrail/mmistakes:latest\n```\n\nHope this will help you!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftechrail%2Fmmistakes-docker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftechrail%2Fmmistakes-docker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftechrail%2Fmmistakes-docker/lists"}