• 돌아가기
  • 아래로
  • 위로
  • 목록
  • 댓글

ghost 블로그 - docker 포테이너로 설치기

purndal 537

2

13

도커를 활용에 대해서 이것저것 해보는 과정중 드디어 하위 도메인에 블로그를 연결을 해봐야 겠다는 생각에

설치를 진행을 해보았습니다. 

 

도커에서 데이터의 저장은 모두 한곳에 저장을 하고 있습니다. 

 

/data/[컨테이너이름]/데이터 이름 등등.. 

 

이런식으로 한 곳에 모우고 있네요.. 모르더라도 지우기 쉽고 이 모든것이 처음에 proxmox 에서 백업이 용이하도록

찾아보고 이제 보통 저런식으로 관리하게 되어지네요 .. 

 

설치 전 docker 의 network 를 확인을 하고 시작했습니다. 보통 일반적으로 iptime으로 사용한다면 내부 ip가

192.168.0.1~192.168.0.255 까지이며 docker 내부적으로 별도의 ip로 관리가 이루어진다고 하더군요. 

그래서 npm의 설정 시 포트 설정을 하지 않고 컨테이너 이름으로 연결을 하더라도 리버스프록시로 연결된다라는

이론을 바탕으로 찾아봅니다. 

 

포테이너에 networks 에 만들어둔 npm 의 ip를 보면. 

 

2023-01-30 13 10 25.png.jpg

 

172.18.0.1 부터 설정 되어져있으며 npm을 묶으면 그 숫자부터 사용하면 같은 대역에서 사용할 수 있다네요.. 

모르지만 그냥 사용합니다. 

 

그리고 이곳저곳에서 정리한 docker compose 를 올려줍니다. 

 

version: '3.5'
services:
  ghostblog:
    image: ghost:alpine
    restart: always #unless-stopped
    container_name: ghostblog
#    ports:
#      - 8080:2368
    environment:
      - database__client=mysql
      - database__connection__host=ghostblog-db
      - database__connection__user=ghost
      - database__connection__password=압호입력 #password (1)
      - database__connection__database=ghost
      - NODE_ENV=production
      - url=https://www.domain.com
      - TZ=Asia/Seoul
    volumes:
      - /data/ghost/content:/var/lib/ghost/content
    depends_on:
      - ghostblog-db
    networks:
      default:
        ipv4_address: 172.18.0.110

  ghostblog-db:
    image: mysql:8
    restart: always #unless-stopped
    container_name: ghostblog-db
    environment:
      - MYSQL_ROOT_PASSWORD=관리자 암호 입력 #password root
      - MYSQL_DATABASE=ghost
      - MYSQL_USER=ghost
      - MYSQL_PASSWORD=암호 입력 #password (1)
      #- MYSQL_ROOT_HOST=172.18.0.111 ## Ensures the Docker network has access
      - TZ=Asia/Seoul
    volumes:
      - /data/ghost/mysql/db:/var/lib/mysql
    networks:
      default:
        ipv4_address: 172.18.0.111

networks:
  default:
    name: npm
    external: yes

 

역시 설정으로 전역 네트워크는 npm으로 묶어주고 개별 컨테이너는 ip를 설정을 해서 변경되어지지 않도록 구성합니다.

리버스 프록시를 사용할 예정이므로 port는 주석처리 하고 

- url=https://www.domain.com 는 https://domain.com으로 해버리니 연결이 되어지지 않아서 www.을 붙혀줍니다. 

 

그리고 스텍을 업데이트 하면 이미지를 다운받아서 설치를 시작하더라구요. 

 

다만 설치 시간이 많이 걸리더군요. 우선 mysql의 로그를 보면서 설치 되는것을 확인해봤습니다. 

다행이 에러없이 설치가 되더군요. 그리고 ghost 로그를 보면은 데이터베이스 설치가 이루어지고 있는

모습을 보게 됩니다. 엄청 오래걸려요... 

 

설치가 다 되어지면 npm 에 접속을 해서 www.domain.com을 http://ghostblog:2368 ssl등록으로 연결 해줬습니다. 

domain.com으로 접속하더라도 보여야 하니 setting 에서 default site에 edit를 눌러 redirect로 www.domain.com

으로 연결하도록 설정하니 이제 domain.com으로 접속하면 www.domain.com으로 연결됩니다.. 

 

왜 domain.com 만 설정하면 접속이 안되는지 모르겠네요 ㅠㅠ;;; 

 

이렇게 처음에 www.domain.com/ghost 로 접속해서 관리자 설정을 해주고 포스팅은 해당 링크로 접속해서 

글을 남기면 되는것 같습니다. 

 

아직 완변하게 맘에 들지 않지만 그래도 접속되고 포스팅 되는것만 보더라도 기분이 좋더군요 ㅎㅎ. 

이상 완벽하지 않지만 성공한 기록을 남깁니다. 

신고공유스크랩
13
purndal 글쓴이 2023.01.31. 02:30
DarkAcid
헉. 접속해서 한번 봐주실수 있으신가요? 아이디 생성해서 드릴께요.. ..
purndal 글쓴이 2023.01.31. 08:51
DarkAcid

현제 사이트 설정은 아래와 같습니다. 문제가 되는것이 아무리 생각해도 저 A 레코드를 설정을 프록시로

설정한것이 아닌가 하는 생각이 들기는 하더군요... 그래도 시간 지나면 연결이 되야하는데 안되니 ㅠㅠ;; 

서버 및 웹쪽 부분은 파고들수록 어렵네요 .. 

 

2023-01-31 08 41 17.png.jpg

2023-01-31 08 44 34.png.jpg

2023-01-31 08 45 12.png.jpg

2023-01-31 08 45 36.png.jpg2023-01-31 08 45 47.png.jpg

2023-01-31 08 46 11.png.jpg

 

 

 

profile image 2등
핀비 2023.01.31. 10:47
고스트 백업서버도 같이 돌리셔요.. 첨에 db를 miradb로 설치했다가 mysql로 원복을 실패해서 날려먹었어요 ㅜㅜ
purndal 글쓴이 2023.01.31. 10:54
핀비
고스트에서 권장하는것이 mysql 인것 같더라고요 ㅎㅎ. 그리고 현제 data 폴더안에 mysql 파일 역시 저장되도록 되어있습니다. 지금 docker 셋팅 파일 부터 모든것이 다 data 폴더에 저장되요..
이제 저 docker 만 압축해서 다른곳에 살포시 넘겨주면 끝이라고 생각만 하고 있습니다.
생각대로 안되면. 뭐.. ㅠㅠ;; 암울한 생각이 날 수 있다고 생각되네요 ㅠㅠ;
3등
DarkAcid 2023.01.31. 12:35
일단 docker-compose에 url이 https가 아니라 http가되어야 할거같습니다.
몇가지 제가 아는 세팅과 틀린게 보이는데 괜찮으시면 하나씩 고쳐보셔도 될까요?
purndal 글쓴이 2023.01.31. 12:45
DarkAcid
막 고쳐도 됩니다. 새로 깔으라면 깔겠습니다. ㅎㅎ. 최종적으로 여기서 테스트 후 OCI 에 올리는것이 목적이라.. 중요한것은 되야 되는데 지금 이야기 하신부분부터 수정해보겠습니다.
purndal 글쓴이 2023.01.31. 12:53
DarkAcid

[2023-01-31 03:46:14] INFO Your site is now available on http:// .com/
www 빼고 연결을 하니 접속이 이루어지지 않네요 ㅎ.. www로 리다이렉트는 https로도 가능하고.
ssl로 연결해놔서 최종적인 주소가 https 라서 고스트가 인식을 하지 않는 결과가.... ㅠㅠ;;
우선 다시 리다이렉트 설정 후 www.domain.com으로 설정을 돌렸습니다. ㅎ.

 

아무리 생각해도 www 빠진 기본적인 domain.com으로는 npm이 관여하는 듯 합니다 ㅎㅎ. 

리다이렉트로 www 를 붙이고 사용하는것이 정신건강에 좋을 듯 합니다. 어차피 붙일려고는 했으니까요.. ㅎ. 

 

덧/ 클라우드 플레어에서 프록싱을 하더라도 cname으로 설정한 www.domain.com의 접속이 이루어지네. 

설정적인 부분은 추가적으로 바꾸더라도 지금은 현 상태가 가장 합리적이라. 생각되네요 어렵돠~ .. 

profile image
달소 2023.01.31. 23:45
purndal
흠,, 희한하네요
acid님 말씀처럼 url쪽은 http가 들어가는게 맞고
NPM도메인네임쪽에 www.example.com가 아닌 example.com 로만 되면 될것같은데요!
purndal 글쓴이 2023.02.01. 09:10
달소

ㅎㅎ 그러니 말이에요.. NPM에 www를 빼고 설정 하고 A 레코드로 연결을 한 후 접속을 하면 리디렉션한 횟수가 너무 많습니다. 라는 문구만 뜨고 접속이 안되더라고요 ㅎ. 아... 접속은 리다이렉트로 해서 domain.com 으로 접속하면 www. 로 넘어가도록 되어져 있어서 우선 뭐.. 이리 써야죠 ㅎㅎ. 어드밴스 셋팅 부분에 뭘 추가해야 하나 싶기도 하지만 모르면 그냥 편하게 써야죠 ㅎ.

 

클라우드플레어 캐시 삭제 / 브라우저 캐시 삭제 / 프록싱 제거 후 실행 등 접속이 불가능하더군요.. 

뭔가 꼬였는가봅니다 ㅠㅠ;; 

 

덧 / 모든것을 다~ 지우고 처음부터 해봐야겠습니다 ㅎㅎㅎ. 

워드프레스를 www.domain.com으로 연결을 해봤더니.. 

 

AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 172.18.0.120. Set the 'ServerName' directive globally to suppress this message

AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 172.18.0.120. Set the 'ServerName' directive globally to suppress this message

[Wed Feb 01 09:58:14.197216 2023] [mpm_prefork:notice] [pid 1] AH00163: Apache/2.4.54 (Debian) PHP/8.0.27 configured -- resuming normal operations

[Wed Feb 01 09:58:14.197263 2023] [core:notice] [pid 1] AH00094: Command line: 'apache2 -D FOREGROUND'

 

라는 오류나오면서 접속이 안되는군요 ㅎㅎ. 

npm -> setting -> default site 는 손대는것이 아닌가봅니다 ㅎㅎ. 404 페이지로 하더라도 연결된것조차 안되니 처음부터 차근차근 다시해봐야겠어요 ㅎ. 

profile image
달소 2023.02.03. 12:18
purndal
워드프레스에 https를 사용하시는걸까요?
ssl을 사용하려면 이글하단에 워드프레스 wp-config.php도변경해줏셔야합니다
https://blog.dalso.org/home-server/webserver/17565
purndal 글쓴이 2023.02.03. 14:54
달소
아하. 그래서 접속이 안되었군요... ㅠㅠ;; 지금 다 지우고.. 프록시는 traefik 으로 해볼려고 자료 정리중입니다. ㅎㅎ.

댓글 쓰기 권한이 없습니다. 로그인

취소 댓글 등록

cmt alert

신고

"님의 댓글"

이 댓글을 신고하시겠습니까?

댓글 삭제

"님의 댓글"

삭제하시겠습니까?


목록

공유

facebooktwitterpinterestbandkakao story

등록된 글이 없습니다.