我尝试做简单的无限循环任务。不使用 docker 也能正常工作。但是当我使用 docker 时,它只无限执行 for 循环的 else 部分。实际上可能是什么问题? docker 是否有无限循环的问题?
我的 main.go 文件如下所示。
package main
import (
"bufio"
"fmt"
"os"
)
func main() {
fmt.Println("Hello, World!.....")
for {
fmt.Print("-> ")
var i int
fmt.Scan(&i)
if i == 1 {
fmt.Println("Hello, World! 1")
} else if i == 2 {
fmt.Println("Hello, World! 2")
} else if i == 3 {
fmt.Println("Hello, World! 3")
} else if i == 4 {
fmt.Println("Hello, World! 4")
} else if i == 5 {
fmt.Println("Hello, World! 5")
} else {
fmt.Println("Hello, World! else")
}
}
}
我也尝试过这些链接。在 golang 中读取行 https://stackoverflow.com/questions/40035635/read-line-in-golang/40061275#40061275 如何摆脱 Golang 中的无限循环 https://stackoverflow.com/questions/46476170/how-do-i-break-out-of-an-infinite-loop-in-golang但还是没有用。从昨天开始我就在努力解决这个问题。
docker文件如下:
FROM golang:1.12.0-alpine3.9
RUN mkdir /app
ADD . /app
WORKDIR /app
RUN go build -o main .
CMD ["go","run","/app/main.go"]
我尝试使用构建dockerdocker build -t 你好。并使用运行docker run hello
跑步与
docker 运行你好
Executing with console without docker go run main.go