Openshift新应用程序不适用于dockerfile

时间:2020-05-05 13:07:03

标签: openshift openshift-origin

我正在尝试使用CLI在Openshift中部署新应用。当我使用GUI并单击“从docker文件构建”时,一切正常。但是,当我使用CLI时,它不会。

这些是我的仓库中的文件:

Dockerfile

FROM golang:1.11-alpine
RUN mkdir /app
COPY main.go /app
WORKDIR /app
RUN go build -o main .
EXPOSE 8080 8888
USER 1001
ENTRYPOINT ["/app/main"]

main.go

package main

import (
    "fmt"
    "net/http"
)

func helloHandler(w http.ResponseWriter, r *http.Request) {
    fmt.Fprintln(w, "<h1>Hello OpenShift! Updated build</h1>")
}

func listenAndServe(port string) {
    fmt.Printf("serving on %s\n", port)
    err := http.ListenAndServe(":"+port, nil)
    if err != nil {
        panic("ListenAndServe: " + err.Error())
    }
}

func main() {
    http.HandleFunc("/", helloHandler)
    go listenAndServe("8080")
    select {}
}

我正在关注此article。我已将文件复制到我的私人仓库中,并使用源机密进行克隆。就像那里提到的那样,我将命令与source-secret一起使用

oc new-app https://git.abcd.corp.mycompany.com/12345/openshift-trail.git#development --source-secret=my-secret --name=demo-blah

这给了我以下错误

error: unable to load template file "https://git.abcd.corp.mycompany.com/12345/openshift-trail.git#development": error parsing https://git.abcd.corp.mycompany.com/12345/openshift-trail.git#development: error converting YAML to JSON: yaml: line 3: mapping values are not allowed in this context
error: git ls-remote failed with: fatal: unable to access 'https://git.abcd.corp.mycompany.com/12345/openshift-trail.git/': Problem with the SSL CA cert (path? access rights?);  local file access failed with: stat https://git.abcd.corp.mycompany.com/12345/openshift-trail.git#development: no such file or directory
error: unable to locate any images in image streams, templates loaded in accessible projects, template files, local docker images with name "https://git.abcd.corp.mycompany.com/12345/openshift-trail.git#development"

Argument 'https://git.abcd.corp.mycompany.com/12345/openshift-trail.git#development' was classified as an image, image~source, or loaded template reference.

The 'oc new-app' command will match arguments to the following types:

  1. Images tagged into image streams in the current project or the 'openshift' project
     - if you don't specify a tag, we'll add ':latest'
  2. Images in the Docker Hub, on remote registries, or on the local Docker engine
  3. Templates in the current project or the 'openshift' project
  4. Git repository URLs or local paths that point to Git repositories

--allow-missing-images can be used to point to an image that does not exist yet.

根据openshift doco,它表示如果存储库中有一个Dockerfile,它将自动检测到它。但是在这里,我遇到了一个奇怪的错误,我无法理解。非常感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

您可以将其作为常规dockerfile在自己的计算机上构建,然后将其上传到Docker注册表,然后将其从远程注册表部署到openshift,或者甚至可以将其推送到openshift上的内置注册表。

我认为您正在寻找的命令可能是


    oc new-build

本文可能会帮助您

https://dzone.com/articles/4-ways-to-build-applications-in-openshift-1