Skip to content

Commit 581d5bf

Browse files
authored
Merge pull request #19 from sibyabin/feat/blog-update-1
adding the site updates
2 parents 56104d2 + 26cc69c commit 581d5bf

26 files changed

+867
-131
lines changed

.dockerignore

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
# Jekyll build output
2+
_site/
3+
.sass-cache/
4+
.jekyll-cache/
5+
.jekyll-metadata
6+
7+
# Dependencies (will be installed in container)
8+
vendor/
9+
.bundle/
10+
node_modules/
11+
12+
# Git
13+
.git/
14+
.gitignore
15+
.gitattributes
16+
17+
# IDE and Editor files
18+
.vscode/
19+
.idea/
20+
*.swp
21+
*.swo
22+
*~
23+
.DS_Store
24+
25+
# Documentation (keep in image, but can exclude if desired)
26+
# *.md
27+
# !README.md
28+
29+
# Docker files
30+
Dockerfile
31+
Dockerfile.prod
32+
docker-compose.yml
33+
.dockerignore
34+
35+
# CI/CD
36+
.github/
37+
.gitlab-ci.yml
38+
.travis.yml
39+
40+
# Temporary files
41+
*.log
42+
*.tmp
43+
.cache/
44+
45+
# Environment files
46+
.env
47+
.env.local

.jekyll-metadata

32.4 KB
Binary file not shown.

Dockerfile

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
# Dockerfile for Jekyll Blog Development
2+
# Uses official Jekyll image with all dependencies pre-installed
3+
FROM jekyll/jekyll
4+
5+
# Set working directory
6+
WORKDIR /srv/jekyll
7+
8+
# Copy Gemfile and Gemfile.lock (if exists)
9+
COPY Gemfile Gemfile.lock* ./
10+
11+
# Install dependencies
12+
RUN bundle install
13+
14+
# Expose Jekyll's default port
15+
EXPOSE 4000
16+
17+
# Default command (can be overridden in docker-compose.yml or docker run)
18+
CMD ["jekyll", "serve", "--host", "0.0.0.0", "--port", "4000", "--incremental", "--force_polling"]
19+

Dockerfile.prod

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
# Production Dockerfile - Multi-stage build for optimized production deployment
2+
# Stage 1: Build the site
3+
FROM jekyll/jekyll AS builder
4+
5+
# Set working directory
6+
WORKDIR /srv/jekyll
7+
8+
# Copy Gemfile and Gemfile.lock
9+
COPY Gemfile Gemfile.lock* ./
10+
11+
# Install dependencies
12+
RUN bundle install
13+
14+
# Copy all files
15+
COPY . .
16+
17+
# Build the site for production
18+
RUN JEKYLL_ENV=production jekyll build
19+
20+
# Stage 2: Serve with nginx (lightweight production server)
21+
FROM nginx:alpine
22+
23+
# Copy built site from builder stage
24+
COPY --from=builder /srv/jekyll/_site /usr/share/nginx/html
25+
26+
# Copy nginx configuration (optional - create if you need custom config)
27+
# COPY nginx.conf /etc/nginx/nginx.conf
28+
29+
# Expose port 80
30+
EXPOSE 80
31+
32+
# Start nginx
33+
CMD ["nginx", "-g", "daemon off;"]
34+

Makefile

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
# Makefile for Jekyll Blog Docker Commands
2+
# Provides easy shortcuts for common Docker operations
3+
4+
.PHONY: help build up down logs shell restart clean rebuild production
5+
6+
# Default target
7+
help:
8+
@echo "Jekyll Blog Docker Commands"
9+
@echo ""
10+
@echo "Available commands:"
11+
@echo " make up - Start the development server"
12+
@echo " make down - Stop the development server"
13+
@echo " make build - Build the Docker image"
14+
@echo " make rebuild - Rebuild the Docker image from scratch"
15+
@echo " make logs - View container logs"
16+
@echo " make shell - Access container shell"
17+
@echo " make restart - Restart the development server"
18+
@echo " make clean - Stop and remove containers, volumes"
19+
@echo " make production - Build production image"
20+
@echo ""
21+
22+
# Start development server
23+
up:
24+
docker-compose up
25+
26+
# Start development server in detached mode
27+
up-d:
28+
docker-compose up -d
29+
30+
# Stop development server
31+
down:
32+
docker-compose down
33+
34+
# Build Docker image
35+
build:
36+
docker-compose build
37+
38+
# Rebuild Docker image (no cache)
39+
rebuild:
40+
docker-compose build --no-cache
41+
42+
# View logs
43+
logs:
44+
docker-compose logs -f
45+
46+
# Access container shell
47+
shell:
48+
docker-compose exec jekyll /bin/bash
49+
50+
# Restart containers
51+
restart:
52+
docker-compose restart
53+
54+
# Clean up (containers, volumes)
55+
clean:
56+
docker-compose down -v
57+
@echo "Containers and volumes removed"
58+
59+
# Build production image
60+
production:
61+
docker build -f Dockerfile.prod -t jekyll-blog:prod .
62+
@echo "Production image built: jekyll-blog:prod"
63+
@echo "Run with: docker run -d -p 8080:80 --name jekyll-blog-prod jekyll-blog:prod"
64+
65+
# Run Jekyll commands in container
66+
jekyll:
67+
docker-compose exec jekyll jekyll $(filter-out $@,$(MAKECMDGOALS))
68+
69+
# Bundle commands in container
70+
bundle:
71+
docker-compose exec jekyll bundle $(filter-out $@,$(MAKECMDGOALS))
72+
73+
%:
74+
@:
75+

README_DOCKER.md

Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
# 🐳 Docker Quick Reference
2+
3+
Quick reference for Docker commands to run your Jekyll blog without installing Ruby locally.
4+
5+
## 🚀 Quick Start
6+
7+
```bash
8+
# Start development server
9+
docker-compose up
10+
11+
# Or using Make (if available)
12+
make up
13+
14+
# Access at http://localhost:4000
15+
```
16+
17+
## 📋 Common Commands
18+
19+
### Using Docker Compose
20+
21+
```bash
22+
# Start server
23+
docker-compose up
24+
25+
# Start in background
26+
docker-compose up -d
27+
28+
# Stop server
29+
docker-compose down
30+
31+
# View logs
32+
docker-compose logs -f
33+
34+
# Rebuild after Gemfile changes
35+
docker-compose build
36+
docker-compose up
37+
```
38+
39+
### Using Makefile
40+
41+
```bash
42+
make up # Start server
43+
make down # Stop server
44+
make logs # View logs
45+
make shell # Access container shell
46+
make rebuild # Rebuild image
47+
make clean # Clean up everything
48+
```
49+
50+
### Using Docker directly
51+
52+
```bash
53+
# Pre-pull the base Jekyll image (optional)
54+
docker pull jekyll/jekyll
55+
56+
# Build image
57+
docker build -t jekyll-blog:latest .
58+
59+
# Run container
60+
docker run -it --rm -p 4000:4000 -v $(pwd):/srv/jekyll jekyll-blog:latest
61+
62+
# Access shell
63+
docker exec -it jekyll-blog-dev /bin/bash
64+
```
65+
66+
## 🎯 Production Build
67+
68+
```bash
69+
# Build production image (nginx)
70+
docker build -f Dockerfile.prod -t jekyll-blog:prod .
71+
72+
# Run production container
73+
docker run -d -p 8080:80 --name jekyll-blog-prod jekyll-blog:prod
74+
```
75+
76+
## 📚 Full Documentation
77+
78+
See `DOCKER_GUIDE.md` for comprehensive documentation.
79+

_config.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,13 @@ remote_theme: "mmistakes/jekyll-theme-basically-basic@1.4.5"
99

1010
# Site Settings
1111
lang: en-US
12-
title: Siby Abin's Technology Blog
12+
title: Data & AI in the Cloud - Learning Recipes
1313
email: sibyabin@gmail.com
14-
description: "Technology blog by Siby Abin - Senior Data Engineer. Talks about #dataengineering, #cloud, #aws, #spark, #python, #databricks, #airflow and more"
14+
description: "Master Cloud Computing, Data Engineering, and Artificial Intelligence through practical recipes and continuous learning"
1515
baseurl: ""
1616
url: "https://blogs.sibyabin.tech"
1717
repository: "sibyabin/sibyabin.github.io"
18-
copyright: "© 2023-Siby Abin Thomas. All rights reserved."
18+
copyright: "© 2025-Siby Abin Thomas. All rights reserved."
1919
author:
2020
name: Siby Abin Thomas
2121
twitter: sibyoncloud
@@ -43,7 +43,7 @@ social_media:
4343
markdown: kramdown
4444
highlighter: rouge
4545
lsi: false
46-
incremental: false
46+
incremental: true # Enable incremental builds for faster development
4747

4848

4949
# Markdown Processing

_data/theme.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# Theme Skin
2-
skin: default # default, night, plum, sea, soft, steel
2+
skin: custom # default, night, plum, sea, soft, steel, custom
33

44
# Theme Text
55
t:

_includes/contact-list.html

Lines changed: 3 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,14 @@
11
<ul class="contact-list">
2-
{% if site.email %}
3-
<li>
4-
<a href="mailto:{{ site.email }}">
5-
<span class="icon icon--email">{% include icon-email.svg %}</span>
6-
<span class="label">{{ site.data.theme.t.email | default: 'Email' }}</span>
7-
</a>
8-
</li>
9-
{% endif %}
10-
2+
<li>
3+
{% include theme-toggle.html %}
4+
</li>
115
{% if site.github_username %}
126
<li>{% include icon-github.html username=site.github_username label='GitHub' %}</li>
137
{% endif %}
148

159
{% if site.linkedin_username %}
1610
<li>{% include icon-linkedin.html username=site.linkedin_username label='Linkedin' %}</li>
1711
{% endif %}
18-
19-
{% if site.twitter_username %}
20-
<li>{% include icon-twitter.html username=site.twitter_username label='Twitter' %}</li>
21-
{% endif %}
22-
23-
{% if site.youtube_username %}
24-
<li>{% include icon-youtube.html username=site.youtube_username label='Youtube' %}</li>
25-
{% endif %}
26-
27-
2812

2913
<li>
3014
{% if site.plugins contains 'jekyll-feed' or site.gems contains 'jekyll-feed' %}

_includes/entry.html

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,6 @@
99
<h3 class="entry-title">
1010
<a href="{{ post.url | relative_url }}" rel="bookmark">{{ title }}</a>
1111
</h3>
12-
{% if post.image.thumbnail %}
13-
{% assign entry_image = post.image.thumbnail | relative_url | escape %}
14-
<img class="entry-image u-photo" src="{{ entry_image }}" alt="">
15-
{% endif %}
1612
</header>
1713
<footer class="entry-meta">
1814
<ul>

0 commit comments

Comments
 (0)