Sign inSign up

yxyj1919/bookstack_zh

By yxyj1919

•Updated almost 4 years ago

支持中文PDF导出的BookStack

Image
0

160

yxyj1919/bookstack_zh repository overview

⁠支持中文PDF导出的BookStack

Dockerfile

# VERSION: yxyj1919/bookstack_zh:v1.0.0
# 第一层镜像
FROM surnet/alpine-wkhtmltopdf:3.16.2-0.12.6-full as wkhtmltopdf 
# 第二层镜像
FROM ghcr.io/linuxserver/baseimage-alpine-nginx:3.15

# set version label
ARG BUILD_DATE
ARG VERSION
ARG BOOKSTACK_RELEASE
LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}"
LABEL maintainer="homerr"

# package versions
ARG BOOKSTACK_RELEASE
RUN \
  echo "**** install build packages ****" && \
  sed -i 's/dl-cdn.alpinelinux.org/mirrors.ustc.edu.cn/g' /etc/apk/repositories && \
  apk add --no-cache --virtual=build-dependencies \
    composer && \
  echo "**** install runtime packages ****" && \
  apk add --no-cache \
    curl \
    fontconfig \
    memcached \
    netcat-openbsd \
    php8-ctype \
    php8-curl \
    php8-dom \
    php8-gd \
    php8-ldap \
    php8-mbstring \
    php8-mysqlnd \
    php8-openssl \
    php8-pdo_mysql \
    php8-pecl-memcached \
    php8-phar \
    php8-simplexml \
    php8-tokenizer \
 ######## Install fonts packages, not bookstactr official ########
    qt5-qtbase \
    xvfb \
    dbus \
    tar \
    ttf-freefont \
    libstdc++ \
    libx11 \
    libxrender \
    libxext \
    libssl1.1 \
    ca-certificates \
    fontconfig \
    freetype \
    ttf-dejavu \
    ttf-droid \
    ttf-freefont \
    ttf-liberation \
    libgcc \
    musl \
    qt5-qtbase-x11 \
    qt5-qtsvg \
    ttf-freefont \
    && apk add --no-cache --virtual .build-deps \
    msttcorefonts-installer \
    \
    # Install microsoft fonts
    && update-ms-fonts \
    && fc-cache -f \
######################################################################
  echo "**** configure php-fpm to pass env vars ****" && \
    sed -E -i 's/^;?clear_env ?=.*$/clear_env = no/g' /etc/php8/php-fpm.d/www.conf && \
    grep -qxF 'clear_env = no' /etc/php8/php-fpm.d/www.conf || echo 'clear_env = no' >> /etc/php8/php-fpm.d/www.conf && \
    echo "env[PATH] = /usr/local/bin:/usr/bin:/bin" >> /etc/php8/php-fpm.conf && \
  echo "**** fetch bookstack ****" && \
    mkdir -p \
      /app/www && \
    if [ -z ${BOOKSTACK_RELEASE+x} ]; then \
      BOOKSTACK_RELEASE=$(curl -sX GET "https://api.github.com/repos/bookstackapp/bookstack/releases/latest" \
      | awk '/tag_name/{print $4;exit}' FS='[""]'); \
    fi && \
    curl -o \
      /tmp/bookstack.tar.gz -L \
      "https://github.com/BookStackApp/BookStack/archive/${BOOKSTACK_RELEASE}.tar.gz" && \
    tar xf \
      /tmp/bookstack.tar.gz -C \
      /app/www/ --strip-components=1 && \
  echo "**** install composer dependencies ****" && \
    composer install -d /app/www/ && \
    echo @edge http://mirrors.ustc.edu.cn/alpine/edge/testing >> /etc/apk/repositories && \
    apk add wqy-zenhei@edge && \
    apk add wqy-zenhei --update-cache --repository http://mirrors.ustc.edu.cn/alpine/edge/testing --allow-untrusted && \
    apk add --update font-adobe-100dpi ttf-dejavu fontconfig && \
  echo "**** overlay-fs bug workaround ****" && \
    mv /app/www /app/www-tmp && \
  echo "**** cleanup ****" && \
    apk del --purge \
      build-dependencies && \
    rm -rf \
      /root/.composer \
      /tmp/*
######## Copy wkhtmltopdf files from docker-wkhtmltopdf image ########
# 拷贝第一层镜像中编译好的工具到第二层镜像中
COPY --from=wkhtmltopdf /bin/wkhtmltopdf /bin/wkhtmltopdf
COPY --from=wkhtmltopdf /bin/wkhtmltoimage /bin/wkhtmltoimage
COPY --from=wkhtmltopdf /bin/libwkhtmltox* /bin/
######################################################################
# copy local files
COPY root/ /

# ports and volumes
EXPOSE 80 443
VOLUME /config

docker-compose.yml

version: "2"
services:
  bookstack:
    image: yxyj1919/bookstack_zh:v1.0.0
    container_name: bookstack
    environment:
      - PUID=1000
      - PGID=1000
      - DB_HOST=bookstack_db
      - DB_USER=bookstack
      - DB_PASS=bookstack123
      - DB_DATABASE=bookstackapp
      - APP_URL=http://192.168.100.178:1095
      - APP_LANG=zh_CN
        #- WKHTMLTOPDF=/usr/bin/wkhtmltopdf
    volumes:
      - /data/bookstack_zh/app:/config
    ports:
      - 1095:80
    restart: unless-stopped
    depends_on:
      - bookstack_db
  bookstack_db:
    image: linuxserver/mariadb
    container_name: bookstack_db
    environment:
      - PUID=1000
      - PGID=1000
      - MYSQL_ROOT_PASSWORD=root
      - TZ=Asia/Shanghai
      - MYSQL_DATABASE=bookstackapp
      - MYSQL_USER=bookstack
      - MYSQL_PASSWORD=bookstack123
    volumes:
       - /data/bookstack_zh/db:/config
    restart: unless-stopped

操作方法: 启动APP后先关闭APP

docker build . -t yxyj1919/bookstack_zh:v1.0.0
docker compose up -d 
docker compose down

编辑 .env文件

sudo vim /data/bookstack_zh/app/www/.env

如果域名不可访问修改为IP地址
APP_URL=http://192.168.100.178:1095
### 添加后面两行 ###
WKHTMLTOPDF=/bin/wkhtmltopdf 
ALLOW_UNTRUSTED_SERVER_FETCHING=true

再重启APP

Tag summary

Content type

Image

Digest

sha256:0c50ad5bc…

Size

238.6 MB

Last updated

almost 4 years ago

docker pull yxyj1919/bookstack_zh:v1.0.0