Docker compose로 라이믹스 편하게 설치하는 방법
컨텐츠 정보
- 2,945 조회
- 9 댓글
본문
들어가며
Rhymix(라이믹스)는 XE에서 포크되어 오픈소스로 개발되고 있는 국산 CMS입니다.
php, mysql, 웹서버로 구성됩니다.
요새는 SSL 인증서 발급이 필요하고, 자동갱신 설정, ffmpeg 설치 및 redis 설치 등이 기본적으로 필요합니다.
하나하나 설치하는데 시간도 오래걸리고 힘듭니다.
명령어 단 2줄로 설치가 된다면 어떨까요?
바로 도커로 가능합니다.
소스는 깃허브(링크)에 올려뒀습니다.
준비사항
자신의 도메인이 우분투 20.04 서버 또는 센토스8 서버를 가리키게 해야 됩니다.
도메인 뿐만 아니라, www.도메인, port.도메인, pma.도메인까지 가리키게 하는게 중요합니다. (phpmyadmin, portainer 접속용)
그리고 방화벽은 80, 443 포트를 열어주세요.
설치하기
(1) Ubuntu 20.04 LTS
sudo apt update -y && sudo apt upgrade -y && sudo apt install curl git -y && sudo apt autoremove -y
위 명령어로 현재 우분투 패키지의 상태를 최신화하고, curl과 git을 설치하고, 필요없는 패키지를 삭제합니다.
curl -o dc https://raw.githubusercontent.com/woosungchoi/docker-rhymix/main/dc && bash dc setup && rm -f dc
위 명령어 한줄이면 됩니다.
(2) Centos 8
sudo yum -y update && sudo yum install -y curl git
위 명령어로 현재 센토스8 패키지의 상태를 최신화하고, curl과 git을 설치하고, 필요없는 패키지를 삭제합니다.
curl -o dcc https://raw.githubusercontent.com/woosungchoi/docker-rhymix/main/dcc && bash dcc setup && rm -f dcc
위 명령어 한줄이면 됩니다.
도메인 주소, 이메일 주소, root DB 비번, DB유저, DB 비번, DB이름 등을 물어보는데 원하는대로 설정 가능합니다.
그후 자동으로 설치됩니다.
SSL 인증서 발급 및 자동 갱신 cron 작업이 되어 있고, ffmpeg도 php에 붙여서 움직이는 GIF 파일도 MP4로 바꿀 수 있습니다.
로컬이나 SSL 없이 설치하기
(1) Ubuntu 20.04 LTS users
sudo apt update -y && sudo apt upgrade -y && sudo apt install curl git -y && sudo apt autoremove -y
위 명령을 넣은 후
curl -o dcl https://raw.githubusercontent.com/woosungchoi/docker-rhymix/main/dcl && bash dcl setup && rm -f dcl
위 명령을 넣고 설치하면 됩니다.
(2) For Centos 8 users
sudo yum -y update && sudo yum install -y curl git
위 명령을 넣고
curl -o dccl https://raw.githubusercontent.com/woosungchoi/docker-rhymix/main/dccl && bash dccl setup && rm -f dccl
위 명령을 넣은 후 설치하면 됩니다.
(3) For Windows 10 WSL2 Ubuntu 20.04 LTS users
WSL2 Ubuntu 20.04 LTS와 docker를 윈도우10에 설치합니다.
https://www.wsgvet.com/ubuntu/160 , https://www.wsgvet.com/ubuntu/180
sudo apt update -y && sudo apt upgrade -y && sudo apt autoremove -y
위 명령어를 넣은 후
curl -o dcwl https://raw.githubusercontent.com/woosungchoi/docker-rhymix/main/dcwl && bash dcwl setup && rm -f dcwl
위 명령어를 넣으면 됩니다.
처음에 Enter your domain (ex : mydomain.com or localhost) : 이렇게 나옵니다.
로컬에서 설치하기 때문에 localhost 를 넣으면 됩니다. 나머지는 원하는대로 설정할 수 있습니다.
라이믹스 설정하기
자신의 도메인 주소로 들어가면 라이믹스 설치화면이 나올 것입니다.
DB : mysql
DB server address : db
DB server port : 3306
DB ID : 설치할때 지정했던 DB유저 이름
DB Password : DB 비밀번호
DB name : DB이름
넣으면 됩니다.
Redis 캐시 설정하기
Admin panel(관리자 페이지) -> Configuration(설정) -> System configuration(시스템 설정) -> Advanced configuration(고급설정)
Cache enable(캐시 사용) : redis
Host(호스트) : redis
Port(포트) : 6379
DB number(DB번호) : 1
이렇게 설정하면 됩니다.
인증메일 설정하기
구글 SMTP가 제일 편합니다.
https://www.wsgvet.com/bbs/board.php?bo_table=home&wr_id=594
위 링크의 2번에 보시면 앱 비밀번호 생성하기가 있는데, 따라하셔서 16자리 앱비밀번호를 찾습니다.
관리자 페이지 -> 설정 -> 시스템 설정 -> 알림 설정에서 위와 같이 설정하면 됩니다.
이메일 주소는 자신의 gmail 주소를 넣으면 됩니다.
phpmyadmin과 portainer
Phpmyadmin : https://pma.yourdomain.com
Portainer : https://port.yourdomain.com
위와 같은 형식의 주소로 들어가면 들어갈 수 있습니다.
portainer는 웹으로 도커 컨테이너를 관리할 수 있는 좋은 툴입니다.
Docker를 Web에서 관리하는 Portainer 설치방법
위 링크를 참조하세요.
도커 이미지 자동 업그레이드 등록
docker_upgrade.sh 파일에서 /your/path/to/rhymix/ 부분을 자신의 도커 폴더로 변경합니다.
chmod a+x docker_upgrade.sh
위와 같이 실행 가능하게 해줍니다.
echo "30 12 * * * /your/path/to/rhymix/docker_upgrade.sh >> /var/log/docker_upgrade_cron.log 2>&1" >> mycron && sudo crontab mycron && rm mycron
위 내용에서 /your/path/to/rhymix/ 부분을 자신의 도커 폴더로 변경 후 명령을 내려주면 crontab에 자동으로 들어갑니다.
기타 실행명령어
docker-compose.yml 파일이 있는 곳으로 가서
./dc start
위 명령어를 내리면 전체 도커 컨테이너가 시작됩니다.
./dc stop
위 명령어를 내리면 전체 도커 컨테이너가 정지됩니다.
./dc update
위 명령어를 내리면 도커 이미지를 최신화하고, 재시작합니다.
관련자료
-
서명우성짱의 NAS를 운영하고 있습니다.
저의 즐거움이 여러분의 즐거움이면 좋겠습니다.
-
링크
GCE님의 댓글
Creating volume "rhymix_phpmyadmin" with default driver
Creating certbot ... error
Creating redis ...
Creating portainer ...
Creating db ...
ERROR: for certbot Cannot start service certbot: OCI runtime create failed: container_linux.go:349: starting container process caused "process_linux.go:449: containCreating db ... error
Creating redis ... done
Creating portainer ... done
used \"process_linux.go:432: running prestart hook 0 caused \\\"error running hook: signal: killed, stdout: , stderr: \\\"\"": unknown
ERROR: for certbot Cannot start service certbot: OCI runtime create failed: container_linux.go:349: starting container process caused "process_linux.go:449: container init caused \"process_linux.go:432: running prestart hook 0 caused \\\"error running hook: signal: killed, stdout: , stderr: \\\"\"": unknown
ERROR: for db Cannot start service db: OCI runtime create failed: container_linux.go:349: starting container process caused "process_linux.go:449: container init caused \"process_linux.go:432: running prestart hook 0 caused \\\"error running hook: signal: killed, stdout: , stderr: \\\"\"": unknown
ERROR: Encountered errors while bringing up the project.
구글 클라우드 무료티어에서는 이렇게 뜨고 안되네요. 호환성 문제가 있나봅니다.
GCP님의 댓글의 댓글
우성짱님 요기 스크립트를 참고해서 tar 다운로드 받아 덮어쓰기를 시도 해봤는데 db 를 업데이트 하라는 메시지는 뜨는데 버전이 바뀌진 않더군요.
혹시 짐작가시는 이유가 있을까요?
그리고 php7.4 버전으로 도커 설치되어 있는데 php8 로 업그레이드 하는 방법이 있을까요?
감사합니다
우성짱님의 댓글의 댓글
PHP8은 https://github.com/woosungchoi/docker-rhymix/blob/main/dc-8.0 요거 한번 참조하시면 좋을거 같아요
https://github.com/woosungchoi/docker-rhymix/blob/main/docker-compose.production-8.0.yml
요거를 메인 도커 컴포즈 파일로 쓰시면 됩니다.