그누보드5 도커 이미지 (Arm64, amd64 지원)

· 2년 전 · 1227

PHP 버전은 8.2 Nginx의 버전은 1.25.3, (NJS_VERSION 0.8.2, PKG_RELEASE: 1~bookworm) 입니다.

현재 SemVer 태그에 따라 자동빌드되고 있습니다.

 

가볍게 `docker pull navystack/gnuboard`로 시작하시면 됩니다.

 

코어를 수정하셨으면 사용하기 어렵습니다.

혹시 코어를 수정하셔서 관련된 수정이 필요하시다면 깃허브에 이와 연관된 전체 코드를 전부 올려두었습니다. 참고하셔서 적절하게 수정하셔서 이미지를 만드시면 됩니다.

 

이미지는 공식 php이미지를 베이스로 사용했으며, Nginx를 구성하는 방식은 공식이미지를 참고하여 빌드하였습니다. Traefik을 사용하는 것을 가정했습니다. (인증서 관리의 이점)

Traefik을 사용하지 않으실 계획이라면, 리버스 프록시를 사용하실것을 권장합니다.

물론 인증서를 마운트하고, nginx의 conf파일을 수정하셔서 사용하셔도 됩니다.

 

 약 2달 정도 자체적으로 테스트를 했지만, 혹시 모를 오류가 있을 수 있습니다.

이미지는 버전을 고정해서 사용하시고, 업데이트 하기전에 데이터를 백업하시길 권장합니다.

 

그외의 PHP 버전이나, Nginx 버전이 필요하시면

docker buildx build 하실때 ARG를 전달해주시면 됩니다.

 

혹시, 하다가 막히는 부분이 있으면 댓글 남겨주세요. 다만 자주 방문하는 것이 아니라서, 답변이 늦을수 있습니다. 편하게 github에 이슈 남겨주셔도 좋습니다.

 

깃허브: https://github.com/NavyStack/gnuboard/

도커허브: https://hub.docker.com/r/navystack/gnuboard/

 

공식이미지의 모듈에서 추가한 Nginx 모듈
ngx_http_immutable_module.so

ngx_http_cache_purge_module.so

ngx_http_brotli_static_module.so

ngx_http_brotli_filter_module.so

ngx_pagespeed.so

 

포함하고 있는 PHP 모듈
/usr/local/etc/php/conf.d/docker-fpm.ini
/usr/local/etc/php/conf.d/docker-php-ext-apcu.ini
/usr/local/etc/php/conf.d/docker-php-ext-exif.ini
/usr/local/etc/php/conf.d/docker-php-ext-gd.ini
/usr/local/etc/php/conf.d/docker-php-ext-imagick.ini
/usr/local/etc/php/conf.d/docker-php-ext-intl.ini
/usr/local/etc/php/conf.d/docker-php-ext-opcache.ini
/usr/local/etc/php/conf.d/docker-php-ext-pdo_mysql.ini
/usr/local/etc/php/conf.d/docker-php-ext-redis.ini
/usr/local/etc/php/conf.d/docker-php-ext-sodium.ini
/usr/local/etc/php/conf.d/docker-php-ext-zip.ini
/usr/local/etc/php/conf.d/error-logging.ini
/usr/local/etc/php/conf.d/opcache-recommended.ini

 

docker-compose.yml의 예시입니다.

version: "3.8"
services:
  gnuboard-g5:
    restart: always
    image: navystack/gnuboard:5.5.12
    volumes:
      - gnuboard5-data:/var/www/html
    labels:
      - "traefik.enable=true"
      - "traefik.docker.network=traefik-network"

      - "traefik.http.services.g5-srv.loadbalancer.server.port=80"
      - "traefik.http.services.g5-srv.loadbalancer.passhostheader=true"

      - "traefik.http.middlewares.www-redir.redirectregex.regex=^https://www.(.*)"
      - "traefik.http.middlewares.www-redir.redirectregex.replacement=https://$${1}"
      - "traefik.http.middlewares.www-redir.redirectregex.permanent=true"

      - "traefik.http.middlewares.compresstraefik.compress=true"

      - "traefik.http.routers.g5-rt.rule=Host(`navystack.com`) || Host(`www.navystack.com`)" ## 수정
      - "traefik.http.routers.g5-rt.entrypoints=websecure"
      - "traefik.http.routers.g5-rt.service=g5-srv"
      - "traefik.http.routers.g5-rt.middlewares=www-redir, compresstraefik"

      - "traefik.http.routers.g5-rt.tls=true"
      - "traefik.http.routers.g5-rt.tls.certresolver=letsencrypt" ## 수정
      - "traefik.http.routers.g5-rt.tls.domains[0].main=navystack.com" ## 수정
      - "traefik.http.routers.g5-rt.tls.domains[0].sans=*.navystack.com" ## 수정
    networks:
      - traefik-network
      - g5-internal

  gnuboard-db:
    restart: always
    image: mysql:8.0
    volumes:
      - db_data:/var/lib/mysql
      - db_socket:/var/lib/mysqld
    environment:
      MYSQL_ROOT_PASSWORD: rootpassword
      MYSQL_DATABASE: g5-db-name
      MYSQL_USER: g5-user
      MYSQL_PASSWORD: password

    networks:
      - g5-internal

volumes:
  gnuboard5-data:
  db_data:
  db_socket:

networks:
  traefik-network:
    external: true
  g5-internal:

 

관련 PR도 이미 진행중입니다.

https://github.com/gnuboard/gnuboard5/pull/302

해당 PR에는 제가 컴파일한 Nginx 모듈은 없습니다. (빌드시간 관련)

|
댓글을 작성하시려면 로그인이 필요합니다.

그누보드5 팁자료실

+
제목 글쓴이 날짜 조회
1년 전 조회 1,465
1년 전 조회 1,445
1년 전 조회 3,366
1년 전 조회 2,467
1년 전 조회 1,831
1년 전 조회 1,934
1년 전 조회 1,584
2년 전 조회 2,230
2년 전 조회 1,190
2년 전 조회 1,531
2년 전 조회 1,029
2년 전 조회 3,455
2년 전 조회 1,691
2년 전 조회 1,863
2년 전 조회 1,228
2년 전 조회 1,759
2년 전 조회 1,661
2년 전 조회 2,264
2년 전 조회 1,677
2년 전 조회 1,132
2년 전 조회 1,984
2년 전 조회 1,461
2년 전 조회 1,336
2년 전 조회 2,288
2년 전 조회 1,738
2년 전 조회 2,238
2년 전 조회 1,364
2년 전 조회 2,201
2년 전 조회 1,035
2년 전 조회 1,786