2016-11-20 1 views
0

Docker 이미지에서 실행되는 Lua 스크립트를 얻을 수 없습니다. 나는 Dockerfile을 만든Docker에서 Lua 스크립트 실행하기

function main(...) 
    print("hello world") 
end 

:

나는 이미지에 포함 할 필요가 매우 간단한 루아 스크립트가

FROM debian:latest 
RUN apt-get -y update && apt-get -y install lua5.1 lua-socket lua-sec 
ADD hello.lua /home/user/bin/hello.lua 
CMD ["/bin/sh", "-c", “lua /home/user/bin/hello.lua”] 

을하지만 난 도커 이미지 I을 실행하려고하면 다음과 같은 오류가 발생합니다 :

/bin/sh: 1: [/bin/sh,: not found 

이 오류가 발생하는 이유와 내가 sc Docker 이미지를 실행할 때 ript가 실행됩니다.

답변

0

마지막 줄

CMD ["lua", "/home/user/bin/hello.lua"] 

는 명심해야한다, 당신은 hello.lua 아무것도 인쇄하지 않습니다. 함수 main을 정의하지만이 함수는이 예제에서는 호출되지 않습니다.

메인 덩어리가 호출되는 루아 파일을 호출 할 때 루아와 함께 파이썬이 아닙니다. 당신은 명령 줄에서 매개 변수를 전달하려면 :

CMD ["lua", "/home/user/bin/hello.lua", "param1"] 

hello.lua :

-- get all passed parameters into table 
local params = {...} 

-- print first parameters if any 
print(params[1]) 
0

당신은 직접 Dockerfile에 CMD로 lua 명령을 사용할 수 있습니다 : 당신의 Dockerfile의

CMD ["lua", "/home/user/bin/hello.lua"] 
1

귀하의 마지막 명령은 루아 명령 주위에 둥근 따옴표를 가지고 있습니다. 이러한 잘못된 JSON 문자입니다 : 결과

CMD ["/bin/sh", "-c", “lua /home/user/bin/hello.lua”] 

, 고정 표시기 해당 문자열을 실행하려고하고 누락 된 [/bin/sh,에 대한 오류를 던지고있다. 정상 따옴표에 따옴표를 전환 (그리고 어떤 사람들을 추가 당신이 사용하는 편집기 피) : 다른 언급했듯이

CMD ["/bin/sh", "-c", "lua /home/user/bin/hello.lua"] 

, 당신은 완전히 쉘 건너 뛸 수 있습니다 :

CMD ["lua", "/home/user/bin/hello.lua"] 

을 그리고 당신의 hello.lua 메인을

: 당신은 같은 것을 볼 수 결국

print("hello world") 

을 : 당신은 단지 명령이 내려 단순화 할 수 있도록 기능을 실행할, 호출되지 않습니다

$ cat hello.lua 
print("hello world") 

$ cat Dockerfile 
FROM debian:latest 
RUN apt-get -y update && apt-get -y install lua5.1 lua-socket lua-sec 
ADD hello.lua /home/user/bin/hello.lua 
CMD ["lua", "/home/user/bin/hello.lua"] 

$ docker build -t luatest . 
Sending build context to Docker daemon 3.072 kB 
Step 1 : FROM debian:latest 
---> 7b0a06c805e8 
Step 2 : RUN apt-get -y update && apt-get -y install lua5.1 lua-socket lua-sec 
---> Using cache 
---> 0634e4608b04 
Step 3 : ADD hello.lua /home/user/bin/hello.lua 
---> Using cache 
---> 35fd4ca7f0f0 
Step 4 : CMD /bin/sh -c lua /home/user/bin/hello.lua 
---> Using cache 
---> 440098465ee4 
Successfully built 440098465ee4 

$ docker run -it luatest 
hello world 
관련 문제