golang main() + docker configuration

1. create Dockerfile, go folder and main.go
cd /app
mkdir go
touch cd ./go
touch Dockerfile
touch main.go

2. write Dockerfile

FROM golang:1.12 as builder
COPY ./go ./
RUN go build -o app
ENTRYPOINT ["/go/app"]

3. write main.go(golang)

package main
 
import (
    "bytes"
    "encoding/json"
    "fmt"
    "io/ioutil"
    "net/http"
)
 
func main() {
    fmt.Println("hello world")
 
    element := make(map[string]interface{})
    element["id"] = "build1"
    element["domain"] = "defaut"
    var array []interface{}
    array = append(array, element)
    data := make(map[string]interface{})
    data["resources"] = array
    jsonStr, err := json.Marshal(data)
    if err != nil {
        fmt.Println(err)
        return
    }
    resp,err := http.Post("http://proxy:10000/api/v1/test", "application/json", bytes.NewBuffer(jsonStr))
    if err != nil {
        fmt.Println(err)
        return
    }
    defer resp.Body.Close()
    body, err := ioutil.ReadAll(resp.Body)
    if err != nil {
        fmt.Println(err)
        return
    }
    fmt.Println(string(body))
}

4. docker-compose.yaml file

version: "3.7"

services:
  app:
    image: testimage
    ports:
      - 8000:8000
    volumes:
       - /etc/:/etc/
    healthcheck:
     disable: true
    restart: "no"
    logging:
     driver: syslog
     options:
      tag: app-logger
    build:
      context: .
      args:
        - http_proxy
        - https_proxy
    environment:
      - https_proxy
      - HTTPS_PROXY
      - no_proxy
      - NO_PROXY

5. use command to test first

docker-compose run curl --request POST  --url http://proxy:10001/api/v1/test \
  --header 'content-type: application/json' \
  --data '{
    "resources": [xxx]
}'

sudo su -
docker-compose run curl -v http://proxy:10001/api/v1/test

6. copy file to remote host

scp xxxxx [email protected]:/tmp

sudo docker cp xxxxxx apptest:/src
sudo docker exec -it  apptest sh
sudo docker restart apptest
sudo docker restart appproxytest

sudo docker image list
sudo docker run -p 0.0.0.0:8000:8000/TCP --name apptest  9xxx
sudo docker run -p 0.0.0.0:8080:8080/TCP --name appproxytest  5xxx

//restart it once it is down
docker stop 0xxx
docker image ls
sudo docker run --name apptest -d --rm -p 0.0.0.0:8000:8000/TCP artifactory.xxx.com:9992/servicexxx/repoxxx:2xx


//remove all stopped containers
docker container prune

7. query graphiql 

curl 'http://localhost:8000/query' --data-binary '{"query":"query xxx....

猜你喜欢

转载自blog.csdn.net/daiqinge/article/details/107196257