2016-07-14 3 views
0

도커 컨테이너에서 .exe를 실행하고 싶습니다. 아래는 출처에 대한 링크입니다.실행 파일을 실행하는 도커 이미지를 얻는 방법

힘내 : https://github.com/jcreynolds/NodeLink 허브 : https://hub.docker.com/r/jcreynolds/nodelink/

고정 표시기 컨테이너는 실행되지 않습니다 그러나 건설 나타납니다. 어떤 도움을 주시면 감사하겠습니다.

편집 # 1 : 이것은 unraid

편집 # 2에서 사용하기위한 다음 unraid 고정 표시기 로그

을 추가
Jul 14 12:50:41 BennySRV php: /usr/local/emhttp/plugins/dynamix.docker.manager/scripts/docker 'start' 'NodeLink' 
Jul 14 12:50:41 BennySRV kernel: device veth8fb01c8 entered promiscuous mode 
Jul 14 12:50:41 BennySRV kernel: docker0: port 10(veth8fb01c8) entered forwarding state 
Jul 14 12:50:41 BennySRV kernel: docker0: port 10(veth8fb01c8) entered forwarding state 
Jul 14 12:50:41 BennySRV avahi-daemon[2619]: Withdrawing workstation service for veth958915c. 
Jul 14 12:50:41 BennySRV kernel: docker0: port 10(veth8fb01c8) entered disabled state 
Jul 14 12:50:41 BennySRV kernel: eth0: renamed from veth958915c 
Jul 14 12:50:41 BennySRV kernel: docker0: port 10(veth8fb01c8) entered forwarding state 
Jul 14 12:50:41 BennySRV kernel: docker0: port 10(veth8fb01c8) entered forwarding state 
Jul 14 12:50:41 BennySRV kernel: veth958915c: renamed from eth0 
Jul 14 12:50:41 BennySRV kernel: docker0: port 10(veth8fb01c8) entered disabled state 
Jul 14 12:50:41 BennySRV kernel: docker0: port 10(veth8fb01c8) entered disabled state 
Jul 14 12:50:41 BennySRV avahi-daemon[2619]: Withdrawing workstation service for veth958915c. 
Jul 14 12:50:41 BennySRV avahi-daemon[2619]: Withdrawing workstation service for veth8fb01c8. 
Jul 14 12:50:41 BennySRV kernel: device veth8fb01c8 left promiscuous mode 
Jul 14 12:50:41 BennySRV kernel: docker0: port 10(veth8fb01c8) entered disabled state 

편집 # 3 : 해결! 문제는 도커 실행 명령 (차이점은 -i)에 있었는데 누구에게 -i가 무엇을하는지 알고 있습니까?

작동 실행 명령 :

docker run --name=NodeLink --net="bridge" -i -e TZ="America/Chicago" -v "/mnt/user/Config/NodeLink":"/config":rw -p 8090:8090/tcp -d jcreynolds/nodelink 

그것을 사용하려는 것을 실행 명령 :

docker run -d --name="NodeLink" --net="bridge" -e TZ="America/Chicago" -p 8090:8090/tcp -v "/mnt/user/Config/NodeLink":"/config":rw jcreynolds/nodelink 

편집 :

고정 표시기 파일 코드 : 문제의 코드를 추가 :

FROM ubuntu:latest 

#... 

# Adding Custom files 
################## 
COPY startup.sh /tmp/startup.sh 
RUN chmod -v +x /tmp/startup.sh && sleep 1 && /tmp/startup.sh && rm /tmp/startup.sh 
CMD ["/NodeLink/NodeLink.exe"] 

startup.sh 파일 :

+0

이 방출 오류/경고가 당신이 컨테이너에 가려고했을 때? 예상대로 실행되지 않는 이유에 대한 단서를 제공하는 데 도움이되는 것은 무엇입니까? – Castaglia

+1

도커 파일은 CMD 또는 ENTRYPOINT를 사용하여 실행할 서비스를 지정합니다. 왜 startup.sh를 추가적으로 실행합니까?또한 귀하의 exe는 서비스입니까? 아니면 무언가를 실행 한 다음 종결하는 것입니까? – TehSphinX

+0

@TechSpinX 추가 실행은이 마지막 갈길의 노력이었습니다. 도커 응용 프로그램을 만들 때 나는 초보자입니다. .exe는 기본적으로 포트 8090에서 웹 GUI를 실행하는 서비스입니다. – jcreynodls

답변

0

Docker 컨테이너에서 Windows 실행 파일을 실행할 수 없습니다. 모노에서 실행하는 것에 대해서는 의견이 없지만 startup.sh 스크립트가 실제로 작동하면 아마 컨테이너의 엔트리 포인트 여야합니다.

RUN chmod -v +x /tmp/startup.sh 
ENTRYPOINT /tmp/startup.sh 

일부 설명 - Dockerfile에서 명령을 실행하면 해당 RUN 명령이 완료되면 즉시 종료되는 프로세스가 시작됩니다. Docker 컨테이너가 시작될 때 백그라운드 프로세스가 실행되지 않습니다. ENTRYPOINT 인 상위 프로세스 만 있습니다. Windows 실행 파일을 Bash로 보내려고하고 있는데, 작동하지 않습니다. 대신 셸을 시작하고 백그라운드 프로세스를 시작한 다음 해당 셸을 bash로 시작하도록합니다. 그러면 bash 셸이 부모 프로세스가되며 셸을 종료 할 때까지 백그라운드 프로세스가 계속 실행됩니다.

+0

다음 지침에 따라 수동으로 도커 이미지와 컨테이너를 빌드했습니다. http://forum.universal-devices.com/topic/19214-nodelink -docker /. 잘 작동하는 것처럼 보였다. – jcreynodls

+0

그래서 Dockerfile을 수정할 때 무엇을하려 했습니까? 당신이 익숙하지 않기 때문에 제가 언급 한 엔트리 포인트는이 링크에서 CMD와 똑같이 작동합니다 (이 경우). –

0

Linux에서와 같은 방식으로 Wine 또는 Mono를 사용하여 Docker 컨테이너에서 Windows 실행 파일을 실행할 수 있습니다.

좋은 예로서

https://hub.docker.com/r/solarkennedy/wine-x11-novnc-docker/를 참조하십시오.

윈도우 실행 요구 dotnet20 또는 dotnet45 경우

, 당신은 당신의 Dockerfile에 winetricks dotnet20 또는를 수행해야합니다

내 문제에 대한 해결책은 편집 # 내에
관련 문제