Author: byun1114

  • 아빠가 들려주는 R 통계

    Shiny 코드에 대한 것을 다루고 있지는 않고, 각종 통계 등을 Shiny를 통해서 보여주고 있음. Shiny 코드 작성 요령이라도 배워볼려고 상호대차 신청했는데 해결할 때쯤 도착했음.
    🤣

  • nginx / reverse proxy / Webdav

    조금 헤매기는 했지만, 내가 구현하고자 하는 부분은 구현할 수 있겠다. 오늘은 파일 전송과 관련된 WebDav이다.

    OCR 과 관련되어서 내가 구현하고자 하는 부분은 다음과 같다.

    • PACS로 등록이 되면 센터 DICOM 서버로 전송
      이 부분은 PACS 업체에 문의하였을때 가능하다고 한다. 다만, 이런 부분이 많아지면 기능에 문제가 가는 것은 맞으니까 정말 협의를 해야만 해주겠다고 한다.
    • 센터 DICOM 서버에서 분석 서버로 일정 시간마다 파일 전송
      센터 DICOM 서버에 장기간 파일을 보관할 생각 같은 것은 없다. 최근의 검사 파일만 있다면, 목록을 뽑아서 서버로 파일을 보내는 것은 쉬울 것이라고 생각한다. 내 프로젝트에서는 서버의 front는 도커로 https 443포트만 이용하고 nginx를 reverse proxy로 이용하여 각각의 도커 이미지로 분배한다.
    • DB에 put이나 patch하는 건 어렵지 않게 했다.
    • 파일 전송을 WebDAV을 이용하기로 했고, 이를 위해서 nginx 컴파일 할 때에 옵션을 지정했다.
    • WebDAV으로 proxy_pass를 이용할 때의 설정은 다음과 같다. ‘/’의 유무에 따라서 파일이 전송이 안되거나 파일명이 제대로 전송이 안되는 문제가 생겼다.
    • 나의 경우에는 파일만 전송이 되면 되기 때문에 다른 옵션은 상관이 없다. 아직까지는.. webdav.private는 도커 네트워크 브리지 private를 지정했기 때문이다. 마지막 ‘/’이 들어가니 깔끔하게 동작했다.
    location /webdav {
        proxy_pass http://webdav.private/;
        }
  • ADD 와 COPY

    도커 이미지를 빌드할 때 외부의 파일을 넣어야 하는 경우가 있다.

    특정 파일에 특정 내용을 추가하면 되는 경우에는 echo 를 이용한다.

    RUN echo "AAA" >> /etc/a.txt

    특정 파일 내용을 바꿔야 하는 경우에는 sed를 이용한다. (맞나?)

    RUN sed -i 's/FROM/TO/g' /etc/a.txt

    특정 파일을 복사해서 넣어야 하는 경우에는 ADD와 COPY가 가능하다. ADD는 인터넷에 있는 파일도 입력해서 넣어줄 수 있는 장점이 있다. 단점으로는 내가 시도한 범위 내에서는 권한이 600으로 고정된다. 다른 권한을 부여하기 위해서는 미리 권한 변경을 한 파일을 빌드할 폴더에 넣어두고 COPY로 복사해서 넣어주면 된다.

  • useradd

    리눅스에서 계정을 생성하는 방법에는 useradd와 adduser가 있다. 한 번만 실행할 것이라면 adduser로 하는 것이 홈디렉토리와 비밀번호를 한 번에 만들 수 있으므로 편하다.

    Docker에서는 root가 기본 계정이다. 비밀번호는 제공되지 않는다. 비밀번호가 없기 때문에 발생하는 문제들도 있고 Python 은 root로 실행하면 경고 문구가 실행할 때마다 나온다. 그래서 Docker에서 계정을 만들어서 이용해 보기로 했다. 계정을 꼭 만들어야겠다고 생각한 이유는 RStudio는 꼭 비밀번호가 있어야 접속을 할 수 있기 때문이다.

    useradd로 할 경우 홈 폴더는 -m 옵션을 이용하면 관습적인 위치에 만들어 준다. 비밀번호는 encrypted 된 것을 입력해 주어야 한다. 이것을 이해 못해서 문제를 해결하는데 시간이 꽤 걸렸다.

    Dockerfile에서 다음과 같이 실행하여 준다. 예시는 byun1114 계정에 1을 비빌번호로 사용하겠다고 할 경우이다.

    RUN useradd -m -p $(echo "1" | openssl passwd -1 -stdin) byun1114