我有一个简单的python代码,但无法在Docker或Kubernetes上运行它。
我正在构建,标记和推送我的图片,而不是运行
docker build -t test . --no-cache
docker tag test tcnl/test:0.2
docker push tcnl/test
docker run tcnl/test:0.2
#!/usr/bin/env python
# WS server example
print("Listening...")
import socket
print("Listening...")
import sys
print("Listening...")
s = socket.socket()
print("Listening...")
host = "0.0.0.0"
port = 8765
s.bind((host, port))
print("Listening...")
s.listen(5)
print("B4 while")
try:
c, addr = s.accept()
while True:
print("INSIDE TRUE")
print('Got connection from', addr)
c.send(("Connection accepted!").encode('utf-8'))
print(str(c.recv(4096).decode('utf-8')))
except:
print("Oops!",sys.exc_info(),"occured.")
input()
s.close()
它只是一个websocket服务器,等待连接然后发送消息。但这甚至没有用... 现在我的Dockerfile
FROM python:3.6
MAINTAINER tcnl
# Creating Application Source Code Directory
RUN mkdir -p /test/src
# Setting Home Directory for containers
WORKDIR /test/src
# Installing python dependencies
COPY ./requirements.txt /test/src/requirements.txt
RUN pip install --no-cache-dir -r requirements.txt
# Copying src code to Container
COPY ./test-server.py /test/src/test.py
# Application Environment variables
ENV APP_ENV development
# Exposing Ports
EXPOSE 8765
# Setting Persistent data
VOLUME ["/test-data"]
# Running Python Application
CMD python /test/src/test.py
当我在docker上运行时,该程序甚至无法打印。我在做什么错了?
答案 0 :(得分:4)
只需运行docker run -it tcnl/test:0.2
,它将docker stdout绑定到您的终端,您将看到输出:
# docker run -it tcnl/test:0.2
Listening...
Listening...
Listening...
Listening...
Listening...
B4 while
kubectl run -it test-server --restart=Never --image=tcnl/test:0.2
要获得输出:
kubectl logs test-server
Listening...
Listening...
Listening...
Listening...
Starting Flask...
Listening...
B4 while