2026, 새로운 도약을 시작합니다.

도커 그누보드 이미지 localhost의 mysql db 사용 채택완료

  ◐ 도커 그누보드6 컨테이너 이미지에 localhost의 mysql db를 사용하여 실서비를 운영 중입니다.

  홈서버(Localhost)에서 그누보드6과 함께 실서비스 중인 그누보드5를 localhost의 mysql db를 사용하는 

컨테이너 이미지로 구성(docker-compose 사용) 하였는데, ~~~

  "그누보드5의 정상적인 사용을 위해서는 GD 라이브러리가 필요합니다. GD 라이브러리가 없을 경우 자동등록방지 문자와 썸네일 기능이 작동하지 않습니다." http://ww.glitter.kr:8000/gate/install/

  ~~~ 위와 같은 경고와 함께 그누보드5 컨테이너 이미지가 localhost의 mysql db에 접근하지 못 합니다.

>>> 그누보드6 컨테이너는 localhost의 mysql db를 사용하여 실서비스 중입니다.

>>> 그누보드5 컨테이너 이미지( http://ww.glitter.kr:8000/gate/install/ ) 초기 설치 경고에도 ~~

>>> DB 접근 범위가 %인 사용자(gate)와 DB(gate)를 만들어 --

초기설치( https://policy.glitter.kr/qa_php/gn5ist-error-1.png )를 시도하였느나. ~~

BD를 읽지 못( https://policy.glitter.kr/qa_php/gn5ist-error-2.png ) 합니다.

♣ '그누보드5를 안정적이고 완전하게 사용하려면 GD 라이브러리를 설치하고 활성화하는 것이 매우 중요하다.'고 합니다.

♣ GD 라이브러리를 정상적으로 작동시키기 위해  아래의 파일들이 반드시 필요합니다.

♣ 아레의 파일들을 다운 받을 수 있는 Link가 필요한데 - 링크를 찾지 못 하고 있습니다.

 ☆ 저의 localhost는 apt-get, apk 패키지를 사용할 수 없어서, 직접 다운 받아 설치해야 할 파일들입니다.

♧ php7.4-gd_7.4.21.ipk

♧ php7.4-mysql_7.4.21.ipk

♧ php7.4-pdo_7.4.21.ipk

♧ php7.4-pdo-mysql_7.4.21.ipk

♣ 할만 한 구글링(그누보드 Q&A 검색 등등)은 시도하였으나, 해결하지 못 하고 있습니다.

경험하지 않으신, 성의 없는 답변 지양하시고 우문현답을 주시기 바랍니다.  - 계발환경이 아닙니다.

  ※ 컨테이너 구성 개요 ※

!.  MySQL의 도커 이미지을 만들지 않고 localhost의 mysql db 사용.

!.  그누보드 5와 6의 컨테이너가 호스트(MySQL DB)의 네트워크와 동일한 네트워크 스택 을 공유하게 구성.

◐ 그누보드6.0.8 컨테이너 구성 파일 - 정상 실서비스 중 - https://m.glitter.kr

Dockerfile

Copy


# Use Python base image

FROM python:3.12.4

# Set the working directory

WORKDIR /con/m_glitter

# Copy the requirements file into the container

COPY requirements.txt .

# Install dependencies

RUN pip install --no-cache-dir -r requirements.txt

# Copy the rest of the application code into the container

COPY . .

# Expose the port the app runs on

EXPOSE 8001

# Command to run the application

CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8001"]

docker-compose.yml

Copy


version: '3.8'

services:

  m_glitter:

    container_name: con_m_glitter

    build:

      context: .

    network_mode: host 

    volumes:

      - /mnt/VOL1/mglitter:/con/m_glitter

      - /mnt/VOL1/hwi:/mnt/VOL1/hwi

requirements.txt

Copy


aiohttp==3.9.5

annotated-types>=0.5.0

anyio==3.7.1

Authlib==1.3.1

bcrypt>=4.0.1

bleach>=6.0.0

cachetools==5.3.2

certifi==2023.7.22

cffi>=1.15.1

click==8.1.7

contourpy>=1.0.6

cryptography==42.0.4

cycler>=0.11.0

dnspython==2.6.1

email_validator==2.1.1

exceptiongroup==1.1.3

fastapi>=0.111.0

fonttools>=4.38.0

greenlet==3.0.1

h11==0.14.0

httpcore>=0.17.3

httpx>=0.24.1

idna==3.7

importlib-resources>=5.12.0

itsdangerous==2.1.2

Jinja2==3.1.4

kiwisolver==1.4.5

MarkupSafe==2.1.3

matplotlib>=3.5.3

numpy>=1.21.6

packaging==23.2

pandas>=1.3.5

passlib==1.7.4

Pillow>=9.5.0

plotly==5.18.0

pycparser==2.21

pydantic==2.4.2

pydantic-core==2.10.1

pydantic-settings==2.0.3

pyopenssl>=23.3.0

pyparsing==3.1.1

python-dateutil==2.8.2

python-dotenv>=0.21.1

python-multipart==0.0.9

pytz==2023.3.post1

six==1.16.0

sniffio==1.3.0

SQLAlchemy==2.0.23

sse-starlette>=0.10.3

starlette>=0.27.0

tenacity==8.2.3

testresources>=2.0.1

typing-extensions>=4.7.1

tzdata==2023.3

ua-parser==0.18.0

user-agents==2.2.0

uvicorn>=0.22.0

webencodings==0.5.1

zipp>=3.15.0

filelock==3.12.2

APScheduler>=3.10.0

pymysql==1.1.1

psycopg2-binary==2.9.9

lxml==5.1.0

PyJWT==2.8.0

◐ 그누보드(5.5.13 반응형웹) 컨테이너 구성 파일 -

Dockerfile

Copy


# Base image

FROM php:7.4.21-cli

# Set working directory

WORKDIR /con/glitter

# Copy the necessary files

COPY php.ini /con/glitter/php.ini

# Install necessary PHP extensions

RUN docker-php-ext-install mysqli pdo pdo_mysql

# Command to run the application

CMD ["php", "-S", "0.0.0.0:8000", "-t", "/con/glitter"]

docker-compose.yml

Copy


version: '3.8'

services:

  glitter:

    container_name: con_glitter

    build:

      context: .

      dockerfile: Dockerfile

    network_mode: host

    volumes:

      - /mnt/VOL1/glitter:/con/glitter

      - /mnt/VOL1/hwi:/mnt/VOL1/hwi

php.ini

Copy


extension=gd

extension=mysqli

extension=pdo_mysql

expose_php = Off

allow_url_fopen = Off

DISPLAY_ERRORS =Off

display_startup_errors = Off

log_errors = On

error_reporting = E_ALL & ~E_NOTICE & ~E_DEPRECATED

register_globals = Off

upload_max_filesize = 1024M

post_max_size = 1024M

max_file_uploads = 4

[MySQLi]

mysqli.default_socket = /var/lib/mysql/mysql.sock

[Pdo_mysql]

pdo_mysql.default_socket = /var/lib/mysql/mysql.sock

◐ 서버 디렉터리

​​​​​​​

Copy


/mnt/VOL1/Docker/ ( 도커/컨테이너 디렉터리 )

│   ├── docker/ ( 도커 S/W )

│   │   ├── buildkit/

│   │   ├── containerd/

│   │   ├── containers/

│   │   ├── image/

│   │   ├── network/

│   │   ├── overlay2/

│   │   ├── plugins/

│   │   ├── runtimes/

│   │   ├── swarm/

│   │   ├── tmp/

│   │   ├── trust/

│   │   └── volumes/

│   │

│   ├── glitter/  ( 그누보드5 컨테이너 )

│   │   ├── Dockerfile

│   │   ├── docker-compose.yml

│   │   └── php.ini

│   │

│   ├── m_glitter/  ( 그누보드6 컨테이너 )

│   │   ├── Dockerfile

│   │   ├── docker-compose.yml

│   │   └── requirements.txt

│

/mnt/VOL1/glitter/

│   ├── gate/ ( 그누보드5 디렉터리 )

│   │   ├── adm/

│   │   ├── bbs/

│   │   ├── theme/

│   │   ├── _common.php

│   │   ├── common.php

│   │   ├── config.php

│   │   └── index.php

│   ├── style.css

│   ├── index.php

│   └── robots.txt

│

/mnt/VOL1/mglitter/ ( 그누보드6 디렉터리 )

│   ├── .env

│   ├── api/

│   ├── core/

│   ├── lib/

│   ├── service/

│   ├── venv/

│   ├── . . .

│   └── main.py

│

/mnt/VOL1/MySQL/ ( MySQL DB 디렉터리 )

│

/mnt/VOL1/hwi/ ( static 파일 디렉터리 )

│   ├── gimg/

│   │   ├── img/

│   │   └── favicon/

│   ├── css/

│   │   ├── glitter.css

│   │   ├── m.glitter_default.css

│   │   ├── . . .

│   │   └── policy.glitter_default.css

│   ├── qa_php/

│   ├── robots.txt

│   ├── m.robots.txt

│   ├── policy.robots.txt

│   ├── . . .

│   ├── glitter_sitemap.xml

│   ├── m.glitter_sitemap.xml

│   ├── policy.glitter_sitemap.xml

│   └── site_map.xml

│

◐ 홈서버(Localhost) 정보

​​​​​​​

Copy


root@HumanpcNAS:~# cat /etc/*release

ID=nas200

NAME="ipTIME NAS200"

VERSION="1.0.60"

VERSION_ID=1.0.60

PRETTY_NAME="ipTIME NAS200 1.0.60"

답변 1개

채택된 답변
+20 포인트
로그인 후 평가할 수 있습니다

답변에 대한 댓글 2개

안녕하세요.

감사합니다.

애매하군요 ! - 유사한 link들을 이미 섭렵하였습니다. ㅠ ㅠ

php7.4-gd_7.4.21.ipk ,
php7.4-mysql_7.4.21.ipk ,
php7.4-pdo_7.4.21.ipk ,
php7.4-pdo-mysql_7.4.21.ipk ,

위의 파일들을 직접 다운 빋아서 컨테이너 root로 옮긴 후,
Dockerfile에서 opkg 명령어로 설치하려고 합니다.

>저의 localhost(ipTIME NAS200)에서는 apk 나 apt-get 명령어를 사용할 수 없기 때문입니다.
채택 감사 합니다.

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

답변을 작성하려면 로그인이 필요합니다.

로그인
🐛 버그신고