schemaVersion: 2.2.0 metadata: name: go displayName: Go Runtime description: Go (version 1.18.x) is an open source programming language that makes it easy to build simple, reliable, and efficient software. icon: https://raw.githubusercontent.com/devfile-samples/devfile-stack-icons/main/golang.svg tags: - Go - Deprecated projectType: Go language: Go provider: Red Hat version: 2.1.0 starterProjects: - name: go-starter description: A Go project with a simple HTTP server git: checkoutFrom: revision: v2.1.0 remotes: origin: https://github.com/devfile-samples/devfile-stack-go.git components: - name: build image: imageName: go-image:latest dockerfile: uri: docker/Dockerfile buildContext: . rootRequired: false - name: deploy kubernetes: uri: kubernetes/deploy.yaml endpoints: - name: http-8081 targetPort: 8081 - container: endpoints: - name: http-go targetPort: 8080 - exposure: none name: debug targetPort: 5858 image: registry.access.redhat.com/ubi9/go-toolset:1.18.10-4 args: ['tail', '-f', '/dev/null'] env: - name: DEBUG_PORT value: '5858' memoryLimit: 1024Mi mountSources: true name: runtime commands: - id: build-image apply: component: build - id: deployk8s apply: component: deploy - id: deploy composite: commands: - build-image - deployk8s group: kind: deploy isDefault: true - exec: env: - name: GOPATH value: ${PROJECT_SOURCE}/.go - name: GOCACHE value: ${PROJECT_SOURCE}/.cache commandLine: go build main.go component: runtime group: isDefault: true kind: build workingDir: ${PROJECT_SOURCE} id: build - exec: commandLine: ./main component: runtime group: isDefault: true kind: run workingDir: ${PROJECT_SOURCE} id: run - exec: commandLine: | GOPATH=${PROJECT_SOURCE}/.go \ GOCACHE=${PROJECT_SOURCE}/.cache \ dlv \ --listen=127.0.0.1:${DEBUG_PORT} \ --only-same-user=false \ --headless=true \ --api-version=2 \ --accept-multiclient \ debug --continue main.go component: runtime group: isDefault: true kind: debug workingDir: ${PROJECT_SOURCE} id: debug