2017-11-11 3 views
0

컨테이너 안에 스프링 부팅 응용 프로그램이 있고 일부 파일을 읽는 데 낙타를 사용하지만 낙타에게 컨테이너 외부에서 읽은 다음 나중에 같은 파일을 컨테이너 밖에서도 특정 경로는 누군가? 나를 도울 수낙타 - 도커 컨테이너 외부에서 파일을 이동하는 방법

이 내 코드입니다 : 사전에

@Component 
public class Controlador extends RouteBuilder { 

    @Autowired 
    Procesador objProcesador; 

    @Override 
    public void configure() throws Exception { 
     from("ftp://[email protected]:port?password=password&passiveMode=true&delete=true").streamCaching().convertBodyTo(InputStream.class).process(objProcesador).to("/var/lib"); 
    } 

} 

감사

+0

삭제 대신 [이동] (http://camel.apache.org/file2.html) URI 옵션을 사용하십시오. https://stackoverflow.com/questions/19905462/how-to-rename-and-move-the-file-on-ftp-once-processed-by-camel – Bedla

+0

예, 파일을 이동할 수는 있지만 어떻게 지정할 수 있습니까? 컨테이너 바깥에있는 경로? –

+0

"컨테이너 외부"란 무엇을 의미하는지 확실하지 않습니다. 이 의미는 원격 FTP 서버에서 파일을 이동하면 camel-file2 구성 요소에서 상속 된 "move"옵션이 작동합니다. – Bedla

답변

1

는 컨테이너 밖에서 무엇을 뜻합니까? 컨테이너를 실행하는 호스트의 경로를 의미하는 경우 해당 경로를 볼륨으로 공유해야합니다. "docker run.."을 사용하거나 Dockerfile에서 볼륨을 설정하십시오. Camel이 ftp 또는 sftp를 통해 파일을 가져 오려면 먼저 컨테이너가 해당 사이트에 액세스 할 수 있어야합니다.

+0

예 호스트의 파일이 필요하지만 두 개의 다른 경로 사이에서 파일을 읽고 이동할 수 있습니까? beacause/mnt/files에서 파일을 읽어야하지만 나중에 파일을 호스트의 다른 위치로 이동해야합니다. 예/var/lib/files –

+0

예입니다. 두 경로 모두 [볼륨] (https://docs.docker.com/engine/admin/volumes/volumes/#create-and-manage-volumes)으로 구성해야 컨테이너에서 액세스 할 수 있습니다. 그런 다음 마운트 된 볼륨에 대한 상대 경로 또는 절대 경로와 함께 & move 옵션을 사용할 수 있습니다. – Bedla

+0

호스트에서 필요한 모든 경로는 컨테이너가 도달 할 수 있도록 볼륨으로 마운트해야합니다. –