update
continuous-integration/drone/push Build is passing
Details
continuous-integration/drone/push Build is passing
Details
parent
c12435eb7f
commit
36357cdd13
|
@ -16,7 +16,7 @@ func (sl ServiceList) toServiceEnv() map[string]string {
|
||||||
func (sl ServiceList) toDestinationConfig(nameSpace string) (string, error) {
|
func (sl ServiceList) toDestinationConfig(nameSpace string) (string, error) {
|
||||||
retConfig := ""
|
retConfig := ""
|
||||||
for _, service := range sl {
|
for _, service := range sl {
|
||||||
config, err := service.toDestinationConfig(nameSpace)
|
config, err := service.toDestinationConfig(nameSpace, sl.toServiceEnv())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return "", err
|
return "", err
|
||||||
}
|
}
|
||||||
|
@ -25,15 +25,16 @@ func (sl ServiceList) toDestinationConfig(nameSpace string) (string, error) {
|
||||||
return retConfig, nil
|
return retConfig, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s Service) toDestinationConfig(nameSpace string) (string, error) {
|
func (s Service) toDestinationConfig(nameSpace string, serviceEnv map[string]string) (string, error) {
|
||||||
var handler Handler
|
var handler Handler
|
||||||
switch s.Type {
|
switch s.Type {
|
||||||
case go_handler.TypeGolang:
|
case go_handler.TypeGolang:
|
||||||
handler = go_handler.GoServiceHandler{
|
handler = go_handler.GoServiceHandler{
|
||||||
NameSpace: nameSpace,
|
NameSpace: nameSpace,
|
||||||
Name: s.Name,
|
Name: s.Name,
|
||||||
Root: s.Root,
|
Root: s.Root,
|
||||||
Port: s.Port,
|
Port: s.Port,
|
||||||
|
ServiceEnv: serviceEnv,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,12 +1,67 @@
|
||||||
package go_handler
|
package go_handler
|
||||||
|
|
||||||
|
import (
|
||||||
|
"bytes"
|
||||||
|
"text/template"
|
||||||
|
)
|
||||||
|
|
||||||
|
const servicePipeline = `
|
||||||
|
kind: pipeline
|
||||||
|
type: docker
|
||||||
|
name: 部署{{ .Name }}
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: build
|
||||||
|
image: plugins/docker
|
||||||
|
volumes:
|
||||||
|
- name: docker
|
||||||
|
path: /var/run/docker.sock
|
||||||
|
settings:
|
||||||
|
username:
|
||||||
|
from_secret: reg_username
|
||||||
|
password:
|
||||||
|
from_secret: reg_password
|
||||||
|
repo: reg.icechen.cn/{{ .NameSpace }}/{{ .Name }}
|
||||||
|
registry: reg.icechen.cn
|
||||||
|
tags: ${DRONE_COMMIT:0:8}
|
||||||
|
dockerfile: ./app/api/{{ .Name }}/Dockerfile
|
||||||
|
|
||||||
|
- name: run
|
||||||
|
image: docker
|
||||||
|
volumes:
|
||||||
|
- name: docker
|
||||||
|
path: /var/run/docker.sock
|
||||||
|
commands:
|
||||||
|
- docker rm -f {{ .NameSpace }}-{{ .Name }}
|
||||||
|
- docker run -d --name="{{ .NameSpace }}-{{ .Name }}" --network="nginx-net"{{ range $key, $value := .ServiceEnv }} --env {{ $key }}={{ $value }} {{ end }}reg.icechen.cn/{{ .NameSpace }}/{{ .Name }}:${DRONE_COMMIT:0:8}
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
- name: docker
|
||||||
|
host:
|
||||||
|
path: /var/run/docker.sock
|
||||||
|
`
|
||||||
|
|
||||||
type GoServiceHandler struct {
|
type GoServiceHandler struct {
|
||||||
NameSpace string
|
NameSpace string
|
||||||
Name string
|
Name string
|
||||||
Root string
|
Root string
|
||||||
Port string
|
Port string
|
||||||
|
ServiceEnv map[string]string
|
||||||
}
|
}
|
||||||
|
|
||||||
func (GoServiceHandler) ToDestinationConfig() (string, error) {
|
func (gsh GoServiceHandler) ToDestinationConfig() (string, error) {
|
||||||
return "", nil
|
var err error
|
||||||
|
t := template.New(gsh.Name)
|
||||||
|
t, err = t.Parse(apiPipeline)
|
||||||
|
if err != nil {
|
||||||
|
return "", err
|
||||||
|
}
|
||||||
|
|
||||||
|
b := bytes.Buffer{}
|
||||||
|
err = t.Execute(&b, gsh)
|
||||||
|
if err != nil {
|
||||||
|
return "", err
|
||||||
|
}
|
||||||
|
|
||||||
|
return b.String(), nil
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue