크롬80버전 결제 이슈, 영카트5 주요패치 확인!

LEMP docker 를 만들어보았습니다.(버그있음) > 자유게시판

컨텐츠몰 10% 할인 기간연장!
그누보드5
영카트5
매뉴얼
Q & A
제작의뢰
컨텐츠몰
부가서비스
소모임
커뮤니티

자유게시판

컨텐츠몰 10% 특별할인 기간 연장 4월 30일까지

LEMP docker 를 만들어보았습니다.(버그있음) 정보

LEMP docker 를 만들어보았습니다.(버그있음)

본문

LEMP_docker 입니다.

명령어 한줄로 nginx, php, mariadb를 설치하고 실행해줍니다.

각각의 버전은 수정도 가능합니다. 버그가 있는데 도움을 부탁드립니다.

버그는 아니고,  mariadb 로그파일 저장기능이 없습니다.

 

1. docker 와 docker-compose 를 설치합니다.

 

2. 소스를 다운받습니다. git clone https://github.com/minotech/LEMP_docker.git

 

3. 해당 폴더에 들어가서 docker-compose up 실행하면 끝입니다. 아래글은 설명

 

 

 

4. LEMP_docker 폴더 밑에 docker-compose.yml 파일과 4개의 하위 폴더가 있습니다.

- www 폴더는 웹루트 폴더입니다. 웹소스를 복사해 넣으세요..


- nginx 폴더 아래 conf.d/default.conf 파일을 이용해서 설정을 변경할 수 있습니다.


- php-fpm 폴더 아래에 설정파일 두개가 있습니다.

docker-compose.yml 에서 설정파일 두개중 하나를 선택하여 입력하면 됩니다.


- mariadb 폴더 아래에는 데이타가 저장되는 data 폴더와 설정파일이 my.cnf가 있는 config 폴더가 있습니다. log 폴더는 작동하지 않습니다(방법을 찾는중).


5. docker-compose.yml 파일을 잘 보시면 volumes 부분의 앞부분이 host 컴퓨터의 폴더이고,

:뒷부분이 컨테이너 폴더입니다. 컨테이너 폴더는 건드릴 필요없고, host 컴퓨터 부분만 변경하면 됩니다.

       - ./mariadb/data:/var/lib/mysql
예를 들어 이부분을 보면 ./mariadb/data 현재 디렉토리밑의 mariadb/data 폴더를 의미합니다.

:/var/lib/mysql 이것은 컨테이너의 폴더입니다.

즉 컨테이너에서 /var/lib/mysql에 저장될 데이타를 host 컴퓨터의 ./mariadb/data로 저장시킨다는 의미입니다.

 

6. db: 그누보드등에서 db서버의 host를 주소나 localhost로 넣으면 안됩니다.

여기에 적여있는 db를 host이름에 넣어주세요..(중요)

 

7. 실행할때 docker-compose.yml 이 있는 폴더에 가서 다음 명령어로 실행시킵니다.

$docker-compose up

ctrl-z 를 누르면 종료없이 빠져나올수 있으며 백그라운드로 실행됩니다.

ctrl-c 를 누르면 종료됩니다. 또는 docker-compose stop 과 같은 명령어입니다.

 

8. 그누보드 신규 설치는 테스트하였습니다.

그런데, 기존 소스를 복사해와서 실행 시킬 때, 자동등록방지 캡챠가 안나오고 있습니다.

해결책을 알려주시면 감사하겠습니다.

해결되었습니다. 감사합니다.

 

참고로 DB를 백업, 복원하는 법입니다.

 

일반백업 :

$sudo mysqldump -u root -p비밀번호 --databases DB명 > /backup.sql
비밀번호 있는경우 -p비밀번호 추가 (p와 비밀번호사이 공백없음)

 

 

도커백업 :

$docker exec -i 컨테이너명 mysqldump -u root -p비밀번호 --databases DB명 > /backup.sql

 

 

일반복원 :

mysql -u root -p비밀번호 < ./backup.sql

 

 

도커복원 :

$docker exec -i 컨테이너명 mysql -u root -p비밀번호 < ./backup.sql

 

 

추천1

댓글 12개

docker-compose build  또는
docker-compose build php
명령을 수행하셔야 합니다.

build용 docker 파일은 /php-fpm/dockerfile/Dockerfile 에 있네요.

수행을 안하시면 php 확장 모듈과 그에 필요한 기본 라이브러리리가 설치되지 않습니다.

그리고 docker-compose 로 build 시 build 설정에 있는 Dockerfile을 사용하게 됨으로
docker-compose.yml  php 파트에 다음 설정이 추가되어야 합니다.

php:
  build: ./php-fpm/dockerfile
build 를 피하기 위해서, image: ifnlife/php-ext:v7.4.3 에 php-fpm과 php확장모듈을 추가시킨 private 도커파일을 만들었습니다. 그래서 그냥 실행시키면 됩니다.
확장모듈을 추가하고 싶으면 그때 빌드해도 됩니다.
  /bin/bash 로 docker 쉘로 들어가서 확인을 해보니
php-gd는 설치되어 있지만, 실제 이미지 모듈인 libpng, libjpeg 가 설치되어 있지 않았습니다.
빌드해서 올려놓은 이미지를 새로 빌드하셔야 할것 같습니다.

docker shell에서
apt-get update
apt-get install libfreetype6-dev libjpeg62-turbo-dev libpng12-dev
해보니, 다시 설치를 하던데요.. 한번 해보세요.
설치 안되는데요... 아..그리고, 캡챠는 해결되었습니다.. 결국 권한문제였네요.. 분명 확인한다고 했는데, 실수가 있었습니다. 도커 웹파일이 약간 캐시가 있는것 같은 느낌이 들어요.. 바로 반영 안되는 것 같기도 하고... 아무튼 잘 되었네요.. 감사합니다.
권한 설정을 www-data 로 해두신 부분이 문제가 되는것 같습니다.
일반적으로 docker 환경은 컨테이너라서 그냥 root 권한으로 설정합니다.
권한 설정을 www-data 로 해두신 부분이 문제가 되는것 같습니다. --> 이게 무슨 말씀이신지 잘 이해가 안가는데요...
data폴더를  root로 소유자를 변경하면 도커가 쓰기모드로 들어갈때 root 권한으로 쓰지 않아요...
새로운 사용자를 만들어서 쓰기로 되드라고요..그래서 777로 해야만 쓰기가 되는것 같습니다.

php-fpm 컨테이너로 들어가면
/usr/local/etc/php-fpm.d/www.conf 를 보시면
user = www-data
group = www-data

로 되어 있습니다.

 777로 변경시 정상 동작한다면, 이 부분이 문제일거라고 보네요.

data 폴더만 볼륨 마운트에서 제외 하거나, 그냥 php-fpm 을 root 권한으로 설정하면 될것 같네요.
정말 많은 도움이 되었습니다..
찾아낸 결론은 docker-compose파일 ftp부분에 user: "1000:1000" 이것을 추가해야하는 겁니다..
1000유저는 /etc/passwd 에 나와있는 user입니다.. (저같은 경우 ftpuser)
ftpuser:x:1000:1000:ftpuser:/home/ftpuser:/bin/bash : /etc/passwd 파일 내용)
root:x:0:0:root:/root:/bin/bash

그런데 root는 0번인데, 0번으로 세팅하면 제대로 안됩니다. 다른 유저가 나오네요..
즉 user부분을 1000번으로 세팅하고, data폴더의 소유자를 1000번에 해당하는  사용자이름으로
모두 변경해주면 777로 안해도 정상적으로 나옵니다...
결국 방법을 찾아냈네요.. 감사합니다.
전체 179,996 |RSS
자유게시판 내용 검색

회원로그인

(주)에스아이알소프트 (06253) 서울특별시 강남구 도곡로1길 14, 6층 624호 (역삼동, 삼일프라자) 대표메일:admin@sir.kr
사업자등록번호:217-81-36347 대표:홍석명 통신판매업신고번호:2014-서울강남-02098호 개인정보보호책임자:이총

© SIRSOFT