每当我尝试运行 docker 镜像时,它都会立即退出。
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ae327a2bdba3 k8s-for-beginners:v0.0.1 "/k8s-for-beginners" 11 seconds ago Exited (1) 10 seconds ago focused_booth
Run Code Online (Sandbox Code Playgroud)
根据容器日志
standard_init_linux.go:228: exec user process caused: no such file or directory
Run Code Online (Sandbox Code Playgroud)
我已经在linux本身中创建了所有文件:
FROM alpine:3.10
COPY k8s-for-beginners /
CMD ["/k8s-for-beginners"]
Run Code Online (Sandbox Code Playgroud)
前往代码:
package main
import (
"fmt"
"log"
"net/http"
)
func main() {
http.HandleFunc("/", handler)
log.Fatal(http.ListenAndServe("0.0.0.0:8080", nil))
}
func handler(w http.ResponseWriter, r *http.Request) {
log.Printf("Ping from %s", r.RemoteAddr)
fmt.Fprintln(w, "Hello Kubernetes Beginners!")
}
Run Code Online (Sandbox Code Playgroud)
这是 KUBERNETES WORKSHOP 书中的第一个练习。
我在此过程中使用的命令:
CGO_ENABLED=0 …Run Code Online (Sandbox Code Playgroud) 最基本的Web应用程序是在Go中创建的
package main
import(
"fmt"
"net/http"
"os"
)
func hostHandler(w http.ResponseWriter, r *http.Request){
name, err :=os.Hostname()
if err != nil {
panic(err)
}
fmt.Fprintf(w, "<h1>HOSTNAME: %s</h1><br>",name)
fmt.Fprintf(w, "<h1>ENVIRONMENT VARS: </h1><br>")
fmt.Fprintf(w, "<ul>")
for _, evar := range os.Environ(){
fmt.Fprintf(w, "<li>%s</li>",evar)
}
fmt.Fprintf(w, "</ul>")
}
func rootHandler(w http.ResponseWriter, r *http.Request){
fmt.Fprintf(w, "<h1>Awesome site in Go!</h1><br>")
fmt.Fprintf(w, "<a href='/host/'>Host info</a><br>")
}
func main() {
http.HandleFunc("/", rootHandler)
http.HandleFunc("/host/", hostHandler)
http.ListenAndServe(":8080", nil)
}
Run Code Online (Sandbox Code Playgroud)
它的Docker文件
FROM scratch
WORKDIR /home/ubuntu/go
COPY webapp /
EXPOSE 8080
CMD …Run Code Online (Sandbox Code Playgroud)