---------------------------------------------
21.05.26 추가
일년만에 다시 이 글을 수정하는데
새 서버에 구축하다가 빠진내용이 있는 거 같아 추가합니다. 우선 Docker-compose.yaml파일 내용을 공유합니다.
version: '2'
volumes:
nextcloud:
db:
mariadb_volume:
nextcloud_volume:
services:
db:
image: mariadb
command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
restart: always
volumes:
# - ./home/mariadb_volume:/var/lib/mysql
- mariadb_volume:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD="비번"
- MYSQL_PASSWORD="비번"
- MYSQL_DATABASE="디비이름"
- MYSQL_USER="디비유저"
app:
image: nextcloud
ports:
- 8080:80
- 9000:443
links:
- db
volumes:
# - ./home/nextcloud_volume:/var/www/html
- nextcloud_volume:/var/www/html
restart: always
그리고 ssl 인증관련해서는 처음글에서는 자체 서명된 인증서를 사용했지만 사실 굉장히 귀찮습니다. 그냥 쓰시는게 나중에 업데이트도 편합니다.
그리고 처음 들어가실때 예를들면 프록시서버가 있는 경우 다른 서버에서 접속할 때 신뢰할 수 없는 도메인이라고 뜨는데 이부분은
넥스트 클라우드 컨테이너안에 접속해서 /config/config.php 파일에 프록시 서버를 추가해줘야합니다.
그럼 수고하십쇼
---------------------------------------------
안녕하세요 2주만에 포스팅입니다.
이번 포스팅은 너무 뜬금없지만 Docker Image를 사용해서 NextCloud를 구성하는 방법에 대해 포스팅해보려합니다.
기존 Docker hub에 올라와 있는 이미지는 ssl 적용이 안되어있는데 이번 포스팅에서는 오피셜 이미지를 다운받아 ssl을 적용시키고 이미지로 만드는 방법까지 설명해보려합니다.
---------------------------------------
20.06.26 추가
도커허브에 올라와있는 공식 이미지에서 ssl이 적용된 nextcloud가 있는데 만약 이 포스팅과 다른 방법으로 해보고 싶으시다면 아래 유튜브를 참고하시면 좀 더 편하게 구축하실 수 있습니다. 다만 주의하실점은 밑에 적어둔것과 마찬가지로 db부터 먼저 실행해야하는 점 입니다.
https://www.youtube.com/watch?v=uR5Tn_blKwI&list=LLbRRIaMJUClvjmZO5BJ7UdQ&index=12&t=0s
--------------------------------------
https://hub.docker.com/_/nextcloud
해당 이미지가 공식 official 이미지인데
Docker 환경에 이미지를 다운받아 줍니다.
docker pull nextcloud
이미지를 실행하고 컨테이너 bash로 들어가 줍니다.
docker run -d -p 8080:80 nextcloud
docker exec -it <컨테이너 명> /bin/bash
자 nextcloud 기본 이미지는 apache2를 base로 하고있기 때문에 구글에 apache2 ssl적용을 검색하여 적용해줍시다.
저같은 경우는 해당 블로그의 글을 참고하였습니다.
https://webdir.tistory.com/228
굉장히 잘 설명되어있습니다. 근데 다만 주의하실 점은 Docker image를 다운받았기 때문에 기본 명령어들이 설치되어 있지가 않습니다.
apt update와 vim 등의 여러가지 모듈을 추가적으로 설치하여 진행합니다.
자 ssl적용이 끝났으면 편집된 이미지를 새롭게 저장합니다.
우선 실행되어있는 컨테이너를 stop시키고 commit명령어를 통해 이미지로 저장합니다.
docker commit <컨테이너 이름> <저장할 이미지이름>
해당 이미지를 docker hub에 저장합니다.
docker push <이미지 이름>
도커 허브에 업로드하기위한 자세한 명령어는 이미 많이 다루었기에 따로 여기서 설명하지 않겠습니다.
자 이제 Docker-Compose를 통해 배포해봅시다.
일전에 도커컴포즈에 관한 글을 포스팅했습니다. 대략적으로 설명해 놓았으니 참고하실분들은 참고하시면 됩니다.
docker hub에 올려져있는 nextcloud 공식 이미지를 보면 docker compose에 관한 부분도 있지만 안되는 부분이 있었기 때문에 제가 따로 올려봅니다.
mariadb에 대한 환경변수지정과
위의 도커 컴포즈 파일은 제가 호스트 컴퓨터와 볼륨마운트를 해놓은 부분입니다.
입맛에 맞게 변경하시면 될 거 같습니다.
그럼 이제 대략적인 그림으로 나타내어보면
위의 그림처럼 됩니다.
Docker compose명령으로 실행할때 주의할 점이 있습니다.
mariadb 설정이 끝나기 전에 nextcloud에 접속하여 설정을 들어가버리면 오류가 발생합니다.
docker stats이나 docker logs -f 등의 명령어를 통해 확인을 하시고 nextcloud를 실행하시는게 좋습니다.
만약 계속 안되시면 docker-compose up -d db 부터 실행하고 db가 완전히 설정된 후에 nextcloud를 실행하십시오
이제 nextcloud로 접속하시고 설정하시면 됩니다.
설정하실때 DB설정 부분에서 위에서 설정한 환경변수대로 입력하시고 맨 마지막에는 maria db container의 이름을 입력해줘야합니다.
이제 finish setup을 누르시면 설치가 완료됩니다!
'기타' 카테고리의 다른 글
GCP 인스턴스 ssh 접속 키 만들기 (0) | 2021.11.25 |
---|---|
[mongodb] docker container로 구성된 mongo cluster에 authentication 적용하기 (0) | 2020.12.30 |
연구실 안전교육 스킵하는법 (16) | 2020.12.09 |
[mongodb] docker container로 mongo cluster 구성하기 (10) | 2020.11.11 |
[OpenStack #0] 오픈스택 튜토리얼 (2) | 2020.06.26 |