{"id":19884670,"url":"https://github.com/d3p1/docker-jekyll","last_synced_at":"2026-04-12T07:31:30.670Z","repository":{"id":194543138,"uuid":"688226609","full_name":"d3p1/docker-jekyll","owner":"d3p1","description":"A Docker image for a Jekyll blogger","archived":false,"fork":false,"pushed_at":"2023-12-10T20:29:05.000Z","size":79,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-01T03:42:44.206Z","etag":null,"topics":["docker","docker-image","dockerfile","jekyll"],"latest_commit_sha":null,"homepage":"","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/d3p1.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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-09-06T23:24:14.000Z","updated_at":"2023-09-13T12:35:08.000Z","dependencies_parsed_at":"2023-09-14T01:16:27.668Z","dependency_job_id":"d4311ee5-caca-4b70-85a9-5072178c66de","html_url":"https://github.com/d3p1/docker-jekyll","commit_stats":null,"previous_names":["d3p1/docker-jekyll"],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/d3p1/docker-jekyll","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/d3p1%2Fdocker-jekyll","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/d3p1%2Fdocker-jekyll/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/d3p1%2Fdocker-jekyll/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/d3p1%2Fdocker-jekyll/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/d3p1","download_url":"https://codeload.github.com/d3p1/docker-jekyll/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/d3p1%2Fdocker-jekyll/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31707953,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-12T06:22:27.080Z","status":"ssl_error","status_checked_at":"2026-04-12T06:21:52.710Z","response_time":58,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5: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":["docker","docker-image","dockerfile","jekyll"],"created_at":"2024-11-12T17:28:52.662Z","updated_at":"2026-04-12T07:31:30.640Z","avatar_url":"https://github.com/d3p1.png","language":"Dockerfile","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=center\u003e\n\n# [DOCKER FT. JEKYLL]\n\n[![semantic-release: angular](https://img.shields.io/badge/semantic--release-angular-e10079?logo=semantic-release)](https://github.com/semantic-release/semantic-release)\n[![Release](https://github.com/d3p1/docker-jekyll/actions/workflows/release.yml/badge.svg)](https://github.com/d3p1/docker-jekyll/actions/workflows/release.yml)\n\n\u003c/div\u003e\n\n## Introduction\n\nAs a developer, I am an avid blogger :no_mouth: and I'd like to share a [Docker](https://www.docker.com/) image that can help both me and the community get started with the best static site generator for blogs:\n\n[![Jekyll](./docs/jekyll.jpg)](https://jekyllrb.com/)\n\nMost of the images found for working with [Jekyll](https://jekyllrb.com/) tend to have certain issues that this implementation aims to address (or tries to):\n\n- They often have a considerable size compared to what is believed to be necessary\n- They usually run with the `root` user, which can cause minor difficulties in managing permissions between the local development environment and the container's remote environment\n- It is believed that in a production environment, there is a strong dependency on the web server that will serve the static content. Therefore, providing this service embedded in the image is thought to allow for a much cleaner implementation in this environment\n\nIn this way, with the goal of solving these problems and providing an easy-to-use solution, this image:\n\n- Is based on the [Alpine image of Nginx](https://hub.docker.com/_/nginx) to attempt to ensure that it does not have more size than necessary and provide a web server with a recommended out-of-the-box configuration\n- Comes with the `jekyll` user for working with it in development environments, which can be used in [Dev Containers](https://containers.dev/) or similar setups (this user has the necessary permissions to install [Ruby gems](https://rubygems.org/)).\n- Similar to the [Nginx image](https://hub.docker.com/_/nginx), this image also makes it easy to create configuration files with environment variables. For example, it allows the creation of a configuration file that receives the URL of the site/environment where it will run.\n\nIn the following section, these aspects are elaborated upon, along with an explanation of how to use the image.\n\n## Usage\n\nThis image comes with configuration templates for both [Nginx](https://www.nginx.com/) and [Jekyll](https://jekyllrb.com/).\n\n_(Note: Configuration templates are simply files that capture values from the environment in which they are running to create the final files that the services will use)_\n\nIn this way, both the [Nginx configuration template](https://github.com/d3p1/docker-jekyll/blob/v1.0.4/nginx/etc/jekyll.conf.template) and the [Jekyll configuration template](https://github.com/d3p1/docker-jekyll/blob/v1.0.4/jekyll/etc/_config.env.yml.template) rely on the `${HOST}` environment variable. This environment variable should point to the URL that the site will use, so both [Nginx](https://www.nginx.com/) and the [Jekyll](https://jekyllrb.com/) site are correctly configured.\n\n### Production use\n\nTo use this image in a production environment (or any environment that is not for development purposes), you could use, for example:\n\n```\ndocker run -d -p 80:80 --env HOST=example.com d3p1/jekyll:nginx-alpine3.18\n```\n\nWhere `example.com` is the domain that the site will use in that environment.\n\n### Development use\n\nTo use this image in a development environment, you could use, for example:\n\n```\ndocker run -d -p 80:80 --env HOST=example.test d3p1/jekyll:nginx-alpine3.18 bundle exec jekyll build --watch --config _config.yml,_config.env.yml\n```\n\nWhere `example.test` is the domain that our site will use in that environment.\n\n_(Note: The container is passed the command `bundle exec jekyll build --watch --config _config.yml,_config.env.yml`, which allows it to build with every change made in the source code, providing a smooth development experience)_\n\n## Brief technical overview\n\nThe container already comes with a default [Jekyll](https://jekyllrb.com/) site at `/var/www`, so it can be used and worked on. This location is defined in the `${DOCUMENT_ROOT}` environment variable, which is used for [certain web server configurations](https://github.com/d3p1/docker-jekyll/blob/v1.0.4/nginx/etc/jekyll.conf.template#L17), so it is usually not recommended to modify it unless you know what you are doing.\n\nRegarding [Nginx](https://www.nginx.com/), a [standard/recommended/optimized configuration file](https://github.com/d3p1/docker-jekyll/blob/v1.0.4/nginx/etc/jekyll.conf.template) is provided to serve [Jekyll](https://jekyllrb.com/) content. This configuration file will use the value of `${HOST}` to correctly point its [`server_name`](http://nginx.org/en/docs/http/server_names.html) to the site's URL and handle requests coming from there.\n\nRegarding [Jekyll](https://jekyllrb.com/), the `${HOST}` value will be used for the [`url`](https://jekyllrb.com/docs/variables/#site-variables) value, which is used to define the URLs of the site's links. When the container starts, the configuration file will be created at `${DOCUMENT_ROOT}/_config.env.yml`, so that a site build can be performed using it: `bundle exec jekyll build --config _config.yml,_config.env.yml`.\n\n## Changelog\n\nDetailed changes for each release are documented in [`CHANGELOG.md`](./CHANGELOG.md).\n\n## License\n\nThis work is published under [MIT License](./LICENSE).\n\n## Author\n\nAlways happy to receive a greeting on:\n\n- [LinkedIn](https://www.linkedin.com/in/cristian-marcelo-de-picciotto/) \n- [Web](https://d3p1.dev/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fd3p1%2Fdocker-jekyll","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fd3p1%2Fdocker-jekyll","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fd3p1%2Fdocker-jekyll/lists"}