Tag:

扩展dockerpostgres图像来创build额外的数据库

我已经看到了这个主题: https : //stackoverflow.com/a/26599273/2323245 但是我有以下问题: postgres_1 | FATAL: role "docker" does not exist app_1 | Error: Could not establish a connection with the database 这是我的docker-compose.yml文件 version: "2" services: app: build: context: . dockerfile: Dockerfiles/app.dockerfile links: – postgres depends_on: – postgres ports: – "8080:8080" environment: PORT: 8080 networks: – neo_dev restart: always postgres: build: context: . […]

使用Go Docker API从挂载的文件获取文件上下文

我正在尝试使用Go docker API获取已装入的文件内容: 文件secret.txt存储一行TOKEN=MY_TOKEN 码: cli, err := client.NewEnvClient() if err != nil { panic(err) } defer cli.Close() ctx := context.Background() _, err = cli.ImagePull(ctx, "alpine", types.ImagePullOptions{}) if err != nil { panic(err) } containerConfig := &container.Config{ Image: "alpine", Cmd: []string{"echo", "hello world"}, } // mounted file h := container.HostConfig{ Binds: []string{"/etc/secret.txt"}, } resp, err […]

使用Elastic Beanstalk在AWS上转到Web应用程序,不会在日志中显示输出

这是一个深入的问题,所以我会尽力解释它。 我在Go中构build了一个小的API服务,我试图使用相对较新的AWS Elastic Beanstalk Docker 支持部署到AWS。 这就是我所做的(代码全部是开源的,所以如果你愿意的话,你可以按照下面的步骤): $ git clone https://github.com/rdegges/ipify-api.git $ cd ipify-api $ git fetch origin aws:aws $ git checkout aws $ eb init $ eb create $ eb deploy 这将使用弹性beanstalk创build一个新的应用程序(与docker),并部署它。 如果我然后运行eb open我的web应用程序,我会看到我的公共IP地址(这是正确的行为),所以我知道我的应用程序正在运行/function。 现在,在我的源代码中,我有几行debugging输出: fmt.Println("WOOOOOOOOOOOO") 上面的语句只是打印“WOO …”到控制台。 每次发出新的请求时都会执行此操作。 不幸的是,当我运行eb logs来查看我的实例日志时,这个debugging行从来没有出现 – 我不明白为什么。 我试过打印到STDERR,打印到STDOUT等 – 但我绝对不能得到任何输出。 我search了互联网寻找解决scheme,但还没有find任何解决scheme。

我如何确保kubernetes的优雅缩放?

作为kubernetes中缩放荚的一部分,我希望确保在closures之前我优雅地服务于我的http连接。 就这点而言,我已经在go中实现了这个代码: package main import ( "fmt" "io" "net/http" "os" "os/signal" "syscall" "github.com/braintree/manners" ) func main() { shutdown := make(chan int) //create a notification channel to shutdown sigChan := make(chan os.Signal, 1) //start the http server http.HandleFunc("/", hello) server := manners.NewWithServer(&http.Server{Addr: ":80", Handler: nil}) go func() { server.ListenAndServe() shutdown <- 1 }() //register for interupt […]

fork / exec ./debug:操作不允许

我的目标是能够从Atom.io远程debugging。 进入Docker容器,运行在dlvdebugging器中 。 这是第一个问题: 更新:1。 我在Mac上运行Docker容器,但是这不应该影响代码签名的事情,因为我在一个容器中运行,对不对? 更新:2。 Codesignig主机,没有帮助。 Error: 1. root@…:/go/src/app# go get github.com/derekparker/delve/cmd/dlv 2. root@…:/go/src/app# dlv debug hello.go could not launch process: fork/exec ./debug: operation not permitted 然后试图 1. root@…:/go/src/app# sudo 2. bash: sudo: command not found

Golang:托pipe的VM应用程序的预览返回错误

我正在尝试使用gcloud预览应用程序运行命令预览Go docker(App Engine ManagedVM)应用程序。 但是我一直得到这个错误: Traceback (most recent call last): File "/Users/jwesonga/google-cloud-sdk/platform/google_appengine/dev_appserver.py", line 83, in <module> _run_file(__file__, globals()) File "/Users/jwesonga/google-cloud-sdk/platform/google_appengine/dev_appserver.py", line 79, in _run_file execfile(_PATHS.script_file(script_name), globals_) File "/Users/jwesonga/google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/devappserver2.py", line 985, in <module> main() File "/Users/jwesonga/google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/devappserver2.py", line 978, in main dev_server.start(options) File "/Users/jwesonga/google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/devappserver2.py", line 774, in start self._dispatcher.start(options.api_host, apis.port, request_data) File "/Users/jwesonga/google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/dispatcher.py", line 182, in start […]

Docker发布对golang应用程序不能正常工作

我试图通过docker运行一个golang web服务器应用程序 (它尝试运行由golang博客的相同工具供电的go博客 )。 它没有docker运行良好,但没有给任何反应,如果我使用docker。 我不知道为什么会发生这种情况,因为一个更简单的Web应用程序 ,相同的基于Docker的方法效果很好。 请参阅下面的输出我使用的各种命令。 任何帮助将不胜感激。 docker pull maddyonline/gotutorial docker run -d –publish 8080:8080 –name gotut maddyonline/gotutorial 81bc36e385286326a6d9f74322515a7b9748e493275c3426bcc6848a4589a7e7 docker ps 容器ID图像命令 创build状态端口名称81bc36e38528 maddyonline / gotutorial“go-wrapper run”20秒前上传20秒0.0.0.0:8080->8080/tcp gotut curl localhost:8080 curl:(52)来自服务器的空回复 docker exec gotut curl localhost:8080 <!DOCTYPE html> <html> <head> 和文件的其余部分 我使用的docker文件非常简单。 FROM golang:onbuild EXPOSE 8080 我在同一台服务器上用相当简单的golang应用程序试验了同一个docker文件。 它工作。 docker pull maddyonline/gowebapp docker run […]

docker-compose找不到包(golang)

我正在写一个简单的应用程序,我有这个文件夹结构 docker-compose.yml文件的内容是: version: '2' services: db: image: rethinkdb:latest ports: – "38080:8080" – "38015:28015" – "39015:29015" api: image: golang:1.8-alpine volumes: – .:/go/src/test_server/ working_dir: /go/src/test_server command: go run server.go container_name: test_server ports: – "8085:8085" links: – db tty: true 每次我运行docker-compose up我收到此错误信息: test_server | 控制器/ users.go:4:3:在以下任一项中都找不到软件包“_ / go / src / test_server / vendor / github.com / gin-gonic […]

如何在Docker中运行一个命令

所以我正在编写Docker撰写文件来部署我的Go Web服务器。 我的服务器使用mongo,所以我添加了一个数据卷容器和docker中的mongo服务。 然后我写了一个Dockerfile来构build我的Go项目,最后运行它。 但是,还有一个步骤是必须完成的。 一旦我的项目被编译,我必须运行以下命令: ./my-project -setup 这将添加一些必要的信息到数据库,并且只需要添加一次信息 。 我不能在Dockerfile上添加这个步骤(在构build过程中),因为mongo必须已经启动了。 那么,我怎么能做到这一点呢? 即使我重新启动服务器,然后再次运行docker-compose up我不希望再次执行此命令。 我想我错过了一些Docker的理解,因为我实际上并没有理解关于数据卷容器的所有事情(他们只是停止装载卷的容器?)。 另外,如果我重新启动服务器,然后运行docker-compose up ,哪些命令将运行? 它是否会启动与给定的CMD一起停止的同一个容器? 无论如何,这里是我的docker-compose.yml: version: '2' services: mongodata: image: mongo:latest volumes: – /data/db command: –break-mongo mongo: image: mongo:latest volumes_from: – mongodata ports: – "28001:27017" command: –smallfiles –rest –auth my_project: build: . ports: – "6060:8080" depends_on: – mongo – mongodata […]

Golang – Docker API – 分析ImagePull的结果

我正在开发一个使用Docker API的Go脚本,用于我的项目。 我login到我的资源库后,我拉我想要的Docker图像,但问题是ImagePull函数返回io.ReadCloser的实例,我只能通过传递给系统输出: io.Copy(os.Stdout, pullResp) 很酷,我可以看到答复,但我找不到一个体面的方式来parsing它,并实现一个逻辑取决于它,这将做一些事情,如果一个新版本的图像已被下载,其他事情,如果图像是最新的。 如果您曾经遇到过这个问题,我会很乐意分享您的经验。