Community

Dev 고수님들 도와주세요

(현재상황) 1. 노트북에 서비스를 배포(React, FastAPI +@) 2. 노트북을 고객사에 비치해둔다(보통 인트라넷망) 3. 고객사 담당자가 WEB을 통해 제어한다. (문재점) 1. 서비스가 배포된 노트북이 고객사에 전달되기 때문에 소스유출을 막기위해 2. VM을 설치하여 제공 3. 하지만 VM의 성능이 느려서 다들 고민 4. 자세히는 말씀을 못드리지만 저희 시스템이 VM들을 제어하고 실행기기 때문에 배포된 VM의 용량이나 성능은 그렇게 많이 줄 수 없음 여기서 저와 몇몇은 docker의 도입을 고려, 모노레포로 만들고 front와 back을 subtree로 가져와 배포를 간단하게 하였음.. 하지만 고객이 docker에 배포된 소스를 못보게 하는 방법은 떠오르지 않음 (1) 1. Dockerfile에서 norootuser를 생성 2. chown root:root /dir 3. chmod 700 /dir 4. USER norootuser 로 사용자를 변경 이 방법이 최선인줄 알았지만 docker exec -it -u 0 으로 하면 접근이 됩니다. (2) 1. 쉘스크립트를 만들어서(exec su - norootuser) docker exec 할때마다 강제로 유저를 바꿔버리게 하려고 함 2. Dockerfile에서 ENTRYPOINT ["/bin/bash", "-c", "/usr/local/bin/change.sh && tail -f /dev/null"] 추가 실제로 docker exec 할때는 실행이 안되는 것으로 확인됨 (echo 찍어봤는데 동작안하드라구요) (3) 1. 위의 스크립트를 .bash_profile에 넣어서 자동으로 실행되도록 수 있도록 함 2. RUN echo "/usr/local/bin/change.sh" >> /etc/profile 역시나 접속시 동작은 안하는듯 (로그인을 한게 아니라 exec 으로 제어권만 받아서? 인거 같습니다. 아니면 위치가 잘못됬거나) (4) docker 명령어를 특정 계정만 가능하도록하는방안 -> 하지만 고객사가 admin계정을 가지고 있다면 하위 계정을 컨트롤할수 있으니 패스 (4-1) docker 명령어는 놔두고 option을 막는 방안 (5) 모두다 안될경우 Python은 바이너리로 배포 + React는 빌드 해서 배포 배포후 source 제거 (질문) 1. docker로 이문제를 정말 해결할수는 있는지... 2. docker말고 다른 방식으로 해결할만한 아이디어에 대해 듣고싶습니다. 개발자라서 devops에 대해 깊이 알지 못해서 아이디어가 떠오르지 않습니다. 혹시나 어떤거라도 참고할만한 것이 있다면 말씀해주시면 감사하겠습니다.

알림

알림이 없습니다