Skip to content

Commit 9756966

Browse files
authored
Update docker-entrypoint.sh
1 parent d89ead5 commit 9756966

1 file changed

Lines changed: 35 additions & 48 deletions

File tree

docker-entrypoint.sh

Lines changed: 35 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -1,61 +1,48 @@
11
#!/bin/bash
22
set -e
33

4-
# 辅助函数:如果目标目录为空,则从源目录填充默认内容
5-
populate_if_empty() {
6-
local src="$1"
7-
local dst="$2"
8-
if [ -d "$dst" ] && [ -z "$(ls -A "$dst" 2>/dev/null)" ]; then
9-
echo " → Populating $dst with default content from $src"
10-
cp -r "$src"/. "$dst"/
11-
fi
12-
}
13-
14-
# 辅助函数:合并目录内容(源覆盖目标)
15-
merge_dir() {
16-
local src="$1"
17-
local dst="$2"
18-
if [ -d "$src" ] && [ -n "$(ls -A "$src" 2>/dev/null)" ]; then
19-
echo " → Merging $src into $dst"
20-
mkdir -p "$dst"
21-
cp -rf "$src"/. "$dst"/
22-
fi
23-
}
4+
GREEN='\033[0;32m'
5+
YELLOW='\033[1;33m'
6+
NC='\033[0m'
247

25-
echo "🚀 Starting FixIt container..."
8+
echo -e "${GREEN}🔧 FixIt Docker Entrypoint${NC}"
269

27-
# --- 策略1:如果用户挂载了完整的站点目录到 /data/site,则直接使用它 ---
28-
if [ -d "/data/site" ] && [ -n "$(ls -A /data/site 2>/dev/null)" ]; then
29-
echo " → Using user-provided full site from /data/site"
30-
# 清空默认站点,复制用户完整站点
31-
rm -rf /app/site
32-
cp -r /data/site /app/site
10+
if [ -d "/site" ] && [ -n "$(ls -A /site 2>/dev/null)" ]; then
11+
SITE_DIR="/site"
12+
echo -e "${YELLOW}📂 Using user-provided full site from /site${NC}"
3313
else
34-
# --- 策略2:使用默认站点,并支持细分目录覆盖(向后兼容)---
35-
# 初始化站点目录(如果 /app/site 为空,则从默认示例站点填充)
36-
populate_if_empty /app/site-default /app/site
14+
SITE_DIR="/app/default-site"
15+
echo -e "${YELLOW}📂 Using default site, merging custom data from /data/*${NC}"
16+
17+
merge_dir() {
18+
local src=$1
19+
local dst=$2
20+
if [ -d "$src" ] && [ -n "$(ls -A $src 2>/dev/null)" ]; then
21+
echo " Merging $src -> $dst"
22+
cp -rf $src/. $dst/
23+
fi
24+
}
25+
26+
merge_dir /data/content $SITE_DIR/content
27+
merge_dir /data/static $SITE_DIR/static
28+
merge_dir /data/layouts $SITE_DIR/layouts
29+
merge_dir /data/assets $SITE_DIR/assets
30+
merge_dir /data/data $SITE_DIR/data
3731

38-
# 应用用户挂载的配置文件(/config/config.toml)
3932
if [ -f /config/config.toml ]; then
40-
echo " → Applying custom config.toml"
41-
cp /config/config.toml /app/site/config.toml
33+
echo " Using custom config.toml from /config"
34+
cp /config/config.toml $SITE_DIR/config.toml
4235
fi
43-
44-
# 合并用户提供的内容/布局/静态资源等(细分覆盖)
45-
merge_dir /data/content /app/site/content
46-
merge_dir /data/layouts /app/site/layouts
47-
merge_dir /data/static /app/site/static
48-
merge_dir /data/assets /app/site/assets
49-
merge_dir /data/data /app/site/data
50-
merge_dir /data/i18n /app/site/i18n
51-
merge_dir /data/themes /app/themes # 允许用户完全替换主题
5236
fi
5337

54-
# 生成静态站点
55-
echo "🔨 Generating static site with Hugo..."
56-
cd /app/site
57-
hugo --minify --destination /usr/share/nginx/html
38+
echo -e "${GREEN}⚙️ Generating static site...${NC}"
39+
cd $SITE_DIR
40+
41+
if [ -n "$BASE_URL" ]; then
42+
hugo --minify --baseURL "$BASE_URL" --destination /usr/share/nginx/html
43+
else
44+
hugo --minify --destination /usr/share/nginx/html
45+
fi
5846

59-
# 启动 Nginx
60-
echo "🌐 Starting Nginx..."
47+
echo -e "${GREEN}✅ Static site generated, starting Nginx...${NC}"
6148
nginx -g "daemon off;"

0 commit comments

Comments
 (0)