2015-04-12 42 views
1

使用this official Python image我試圖用docker.run命令提供一些參數。Docker運行命令的兩個apt-get參數不起作用

docker run -it --rm --name myserver -v "$PWD":/usr/src/myapp 
-w /usr/src/myapp python:3-slim apt-get update && apt-get install libpq-dev -y 

首先,它顯示了apt-get update輸出,但隨後返回:

apt-get: command not found 

但不知何故,這引發錯誤之前正常輸出START,然後使用apt-get更新輸出,並NEXT

docker run -it --rm --name myserver -v "$PWD":/usr/src/myapp 
-w /usr/src/myapp python:3-slim echo "START" && apt-get -y update && echo "NEXT" && apt-get install libpq-dev -y 

就好像它不能執行多個apt-get命令一樣。爲什麼echo工作,但第二個apt-get不?

回答

3

爲了確保這些命令在泊塢窗上下文中執行,你可以一個bash會話中配合他們:

docker run -it --rm --name myserver -v "$PWD":/usr/src/myapp \ 
-w /usr/src/myapp python:3-slim \ 
/bin/bash -xec 'apt-get update && apt-get install libpq-dev -y' 

這樣一來,&&正確 shell解釋(一在容器中執行),而不是執行docker run的那個。

但是更好的做法是使用新的Dockerfile在RUN指令中定義一個具有這些命令的新映像,以便準備好可以使用容器的libpq-dev