로그인

검색

[복구, paperless-ngx] 업데이트 실수로 다시 설치

[복구, paperless-ngx]  업데이트 실수로 다시 설치

 

 

상황

- 업데이트 실수로 docker compose 파일이 수정됨

- postgresql, redis, webserver 모두 버전 업됨.

- 복구용 media 폴더는 백업되어 있음.

- 복구용 postgres.sql 백업되어 있음.

 

 

 시행착오

- 이놈 복구 재설치가 매우 까다롭다.

 

 

성공

- docker-compose.yaml 와 docker-compose.env 파일 준비

최대한 원래의 docker-compose.yaml 로 만들기 위해 노력함. (왜 백업하라는지 절실히 느낌)

version: "3.4"
services:
  broker:
    image: docker.io/library/redis:7
    restart: unless-stopped
    volumes:
      - redisdata:/data

  db:
    image: docker.io/library/postgres:17
    restart: unless-stopped
    volumes:
      - ./db:/var/lib/postgresql/data
    environment:
      POSTGRES_DB: paperless
      POSTGRES_USER: paperless
      POSTGRES_PASSWORD: paperless

  webserver:
    image: ghcr.io/paperless-ngx/paperless-ngx:latest
    restart: unless-stopped
    depends_on:
      - db
      - broker
    ports:
      - "5567:8000"
    volumes:
      - ./data:/usr/src/paperless/data
      - ./media:/usr/src/paperless/media
      - ./export:/usr/src/paperless/export
      - ./consume:/usr/src/paperless/consume
    env_file: docker-compose.env
    environment:
      PAPERLESS_REDIS: redis://broker:6379
      PAPERLESS_DBHOST: db

volumes:
  redisdata:

docker-compose.env

PAPERLESS_TIME_ZONE=Asia/Seoul
PAPERLESS_OCR_LANGUAGE=eng+kor
PAPERLESS_SECRET_KEY='!5Re9$yfI%f8<RqOm^o7vD=+ya{wKI7+E<n0~dP2xXL?rZwz&)Rq8CGabej&YiM+'
PAPERLESS_OCR_LANGUAGES=eng kor

 

- psql 컨테이너만 실행

ubuntu@hostname:/vo3/docker/paperless/paperless-ngx$ sudo docker compose up -d db           

WARN[0000] /vo3/docker/paperless/paperless-ngx/docker-compose.yml: the attribute `version` is obsolete, it will be ignored, please remove it to avoid potential confusion
[+] Running 1/1
 ✔ Container paperless-db-1  Started

 

- psql backup 파일을 컨테이너에 넣는다.

ubuntu@hostname:/vo3/docker/paperless/paperless-ngx$ cat backup.sql | docker exec -i paperless-db-1 psql -U paperless -d paperless

 

- 마지막으로 전체 실행

ubuntu@hostname:/vo3/docker/paperless/paperless-ngx$ sudo docker compose up -d
WARN[0000] /vo3/docker/paperless/paperless-ngx/docker-compose.yml: the attribute `version` is obsolete, it will be ignored, please remove it to avoid potential confusion
[+] Running 3/3
 ✔ Container paperless-db-1         Running                                             0.0s
 ✔ Container paperless-broker-1     Started                                             0.2s
 ✔ Container paperless-webserver-1  Started 

 

 

 

총평

- psql 백업이 힘들었다.

이유는 이미 docker compose up 를 한 후에, db 파일을 넣으려고 하면, 에러가 발생한다.

ERROR:  multiple primary keys for table "account_emailaddress" are not allowed
ERROR:  relation "account_emailaddress_user_id_email_987c8728_uniq" already exists
ERROR:  relation "account_emailconfirmation_key_key" already exists
ERROR:  multiple primary keys for table "account_emailconfirmation" are not allowed

그래서, db 만 깨끗한 상태 (텅빈상태)로 실행 후, 백업파일을 넣고, 전체 컨테이너를 실행하면 됨.

 

이 게시물을

댓글'1'
멋진 백업 성능을 보여준 backrest ~~~~~~
믿음직.

이 댓글을

이 댓글을 삭제하시겠습니까?