도커 그누보드 이미지 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
</p>
<p># Use Python base image</p>
<p>FROM python:3.12.4</p>
<p># Set the working directory</p>
<p>WORKDIR /con/m_glitter</p>
<p># Copy the requirements file into the container</p>
<p>COPY requirements.txt .</p>
<p># Install dependencies</p>
<p>RUN pip install --no-cache-dir -r requirements.txt</p>
<p># Copy the rest of the application code into the container</p>
<p>COPY . .</p>
<p># Expose the port the app runs on</p>
<p>EXPOSE 8001</p>
<p># Command to run the application</p>
<p>CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8001"]</p>
<p>
docker-compose.yml
</p>
<p>version: '3.8'</p>
<p>services:</p>
<p> m_glitter:</p>
<p> container_name: con_m_glitter</p>
<p> build:</p>
<p> context: .</p>
<p> network_mode: host </p>
<p> volumes:</p>
<p> - /mnt/VOL1/mglitter:/con/m_glitter</p>
<p> - /mnt/VOL1/hwi:/mnt/VOL1/hwi</p>
<p>
requirements.txt
</p>
<p>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
</p>
<p># Base image</p>
<p>FROM php:7.4.21-cli</p>
<p># Set working directory</p>
<p>WORKDIR /con/glitter</p>
<p># Copy the necessary files</p>
<p>COPY php.ini /con/glitter/php.ini</p>
<p># Install necessary PHP extensions</p>
<p>RUN docker-php-ext-install mysqli pdo pdo_mysql</p>
<p># Command to run the application</p>
<p>CMD ["php", "-S", "0.0.0.0:8000", "-t", "/con/glitter"]</p>
<p>
docker-compose.yml
</p>
<p>version: '3.8'</p>
<p>services:</p>
<p> glitter:</p>
<p> container_name: con_glitter</p>
<p> build:</p>
<p> context: .</p>
<p> dockerfile: Dockerfile</p>
<p> network_mode: host</p>
<p> volumes:</p>
<p> - /mnt/VOL1/glitter:/con/glitter</p>
<p> - /mnt/VOL1/hwi:/mnt/VOL1/hwi</p>
<p>
php.ini
</p>
<p>extension=gd
extension=mysqli
extension=pdo_mysql</p>
<p>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</p>
<p>[MySQLi]
mysqli.default_socket = /var/lib/mysql/mysql.sock</p>
<p>[Pdo_mysql]
pdo_mysql.default_socket = /var/lib/mysql/mysql.sock</p>
<p>
◐ 서버 디렉터리
</p>
<p>/mnt/VOL1/Docker/ ( 도커/컨테이너 디렉터리 )</p>
<p>│ ├── docker/ ( 도커 S/W )</p>
<p>│ │ ├── buildkit/</p>
<p>│ │ ├── containerd/</p>
<p>│ │ ├── containers/</p>
<p>│ │ ├── image/</p>
<p>│ │ ├── network/</p>
<p>│ │ ├── overlay2/</p>
<p>│ │ ├── plugins/</p>
<p>│ │ ├── runtimes/</p>
<p>│ │ ├── swarm/</p>
<p>│ │ ├── tmp/</p>
<p>│ │ ├── trust/</p>
<p>│ │ └── volumes/</p>
<p>│ │</p>
<p>│ ├── glitter/ ( 그누보드5 컨테이너 )</p>
<p>│ │ ├── Dockerfile</p>
<p>│ │ ├── docker-compose.yml</p>
<p>│ │ └── php.ini</p>
<p>│ │</p>
<p>│ ├── m_glitter/ ( 그누보드6 컨테이너 )</p>
<p>│ │ ├── Dockerfile</p>
<p>│ │ ├── docker-compose.yml</p>
<p>│ │ └── requirements.txt</p>
<p>│</p>
<p>/mnt/VOL1/glitter/</p>
<p>│ ├── gate/ ( 그누보드5 디렉터리 )</p>
<p>│ │ ├── adm/</p>
<p>│ │ ├── bbs/</p>
<p>│ │ ├── theme/</p>
<p>│ │ ├── _common.php</p>
<p>│ │ ├── common.php</p>
<p>│ │ ├── config.php</p>
<p>│ │ └── index.php</p>
<p>│ ├── style.css</p>
<p>│ ├── index.php</p>
<p>│ └── robots.txt</p>
<p>│</p>
<p>/mnt/VOL1/mglitter/ ( 그누보드6 디렉터리 )</p>
<p>│ ├── .env</p>
<p>│ ├── api/</p>
<p>│ ├── core/</p>
<p>│ ├── lib/</p>
<p>│ ├── service/</p>
<p>│ ├── venv/</p>
<p>│ ├── . . .</p>
<p>│ └── main.py</p>
<p>│</p>
<p>/mnt/VOL1/MySQL/ ( MySQL DB 디렉터리 )</p>
<p>│</p>
<p>/mnt/VOL1/hwi/ ( static 파일 디렉터리 )</p>
<p>│ ├── gimg/</p>
<p>│ │ ├── img/</p>
<p>│ │ └── favicon/</p>
<p>│ ├── css/</p>
<p>│ │ ├── glitter.css</p>
<p>│ │ ├── m.glitter_default.css</p>
<p>│ │ ├── . . .</p>
<p>│ │ └── policy.glitter_default.css</p>
<p>│ ├── qa_php/</p>
<p>│ ├── robots.txt</p>
<p>│ ├── m.robots.txt</p>
<p>│ ├── policy.robots.txt</p>
<p>│ ├── . . .</p>
<p>│ ├── glitter_sitemap.xml</p>
<p>│ ├── m.glitter_sitemap.xml</p>
<p>│ ├── policy.glitter_sitemap.xml</p>
<p>│ └── site_map.xml</p>
<p>│</p>
<p>
◐ 홈서버(Localhost) 정보
</p>
<p>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개
답변에 대한 댓글 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 명령어를 사용할 수 없기 때문입니다.