개발 ON
  • [Raspberry Pi 5] 운영(배포) 서버에 파일 업로드 시 하드디스크 경로에 업로드하기
    2025년 01월 04일 23시 17분 16초에 업로드 된 글입니다.
    작성자: 이주여이

     

    해당 포스팅 참고하기 전에 생각해보자.

    쥔장은 굳이굳이 root 계정을 SFTP로 접근할 수 있게 끔 만들어놓고 File Zilla로 파일을 옮겼다.

    해당 포스팅을 작성한 후 생각해보니 Volume 폴더를 'cp' 명령어로 복사한 후 하드디스크 마운트한 폴더 내에 'mv' 명령어로 이동 후 이름만 변경하면 쉽게 해결될 수 있는 문제였다!

    다만 열심히 글을 작성한 후 깨달았다!

    이 글을 읽기 전에 정말로 이렇게 해야하는지 생각해보자!

    나는 이미 했기 때문에..

    그리고 글을 정말 정성스럽게 적었기 때문에 삭제하진 않겠다.

     

    이걸 운영 서버라고 하나.. 배포 서버라고 하나..

     

    회사에선 실서버, 운영 서버라고 얘기하는데 집에서 사이드 프로젝트 배포하는 서버를 운영 서버라고 하기엔 너무 거창해서 쩝..

     

    여튼 개발 서버는 Windows이고 배포 서버는 현재 라즈베리파이(Debian)다.

     

    원래 Docker Volume에 업로드 되게 끔 해놨는데 이번에 하드디스크로 파일을 관리할 수 있게 되어 홈페이지에서 내가 사진을 올리더라도 용량이 넉넉한(무려 1TB) 하드디스크에 바로 업로드 되게 끔 할 예정이다.

     

    일단 Samba 통해서 들어가더라도 내가 설정했던 admin 계정으로는 root 권한 폴더를 볼 수 없다.

     

    때문에 잠깐 sshd 설정 파일에서 root 계정도 SFTP 로그인이 가능하게 끔 수정해놓고 진행할 예정이다.

     

    해보자.

     

    sshd 설정 파일에 들어간다.

     

    nano /etc/ssh/sshd_config

     

    아래와 같이 잠깐동안 root도 접근할 수 있게 끔 수정한다.

    (root가 SFTP에 접근하게 끔 해놓는다는 건 보안적으로 매우 위험하다는 걸 인지하자)

     

    PermitRootLogin yes
    #PermitRootLogin prohibit-password

     

    sshd 재시작 후 상태를 확인한다.

     

    systemctl restart sshd
    systemctl status sshd

     

    이제 root 권한으로 SFTP에 접속한다.

     

     

    Docker Volume 경로에 들어간다.

    와우~

     

     

    옮긴다.

     

     

    사실 docker cp라는 걸 사용해보려고 했었는데 컨테이너랑 로컬 사이에 파일 공유를 할 수 있는 기능… 이라고 적혀져 있길래 일단은 SFTP로 옮기는 것이다. docker cp로 가능하다면 그 방법이 더 효율적이지 않을까 싶다.

     

    파일 다 옮겼으면 root로 SFTP 접근 못하게 sshd.config 파일을 원복 시킨다.(매우매우매우매우매우매우 중요)

     

    이제 docker-compose.yaml 파일을 수정해준다.

     

    아래는 수정 전이다.

     

     

    그리고 이렇게 수정해봤다.

     

     

    참고로 위에 사진에는 경로가 ‘G: ~’ 였는데 docker-compose.yml에는 왜 ‘/내_드라이브/STORAGE/5224_homepage:/home/download’로 되어있냐면 하드디스크 마운트 시킨 디렉토리를 G 드라이브로 연결해줬기 때문이다.

     

    여튼 이제 docker-compose up -d --build 명령어를 통해 정상적으로 되는지 테스트해보자.

     

    ~ 두근두근 ~

     

    근데 docker build 칠 때 순간적으로 집에있던 라즈베리파이5 쿨러에서 소리가 꽤나 났던 것 같은데 내 착각이겠지..

    M100인가 그걸로 한 번 옮겨볼까 싶기도 하고..

     

    쩝..

     

    여튼 들어가보자.

     

     

     

     

    웹에디터로 사진 업로드 시 하드디스크 내부 폴더에 정상적으로 업로드되며 사진 표출 또한 정상적으로 이루어진다.

     

    와..

     

    큰 거 해냈다.

     

     

     

     

     

     

     

     

     

     

    근데 다시 생각해보니 볼륨 경로 cp로 복사해서 차피 LINUX 내부에 있는 폴더로 옮기는거니까 mv로 옮긴 후 이름만 변경하면 됐는 거 아닌가?

     

    하.. 또또 바보 짓 했다.

     

    하지만 어제 완성한 클라우드 접근해서 파일 옮긴 거 응용력 좋았어.

     


    참고 레퍼런스

    CHAT GPT

    댓글