도커 그누보드 이미지 localhost의 mysql db 사용

도커 그누보드 이미지 localhost의 mysql db 사용

QA

도커 그누보드 이미지 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


# 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


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


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


# 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


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


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

 

◐ 서버 디렉터리

​​​​​​​

/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) 정보

​​​​​​​

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

php7.4-gd ipk로 검색하니 많이 나옵니다.

http://storyg.co/phps/install-php74-gd-in-docker

https://packages.ubuntu.com/focal/php7.4-gd

안녕하세요.

  감사합니다.

  애매하군요 ! - 유사한 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 명령어를 사용할 수 없기 때문입니다.

답변을 작성하시기 전에 로그인 해주세요.
전체 2,430
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT