Tag:

如何使用compose,mysql和golang连接docker

我有一个数据库泊坞窗,我们将调用mariadb,我也有一个使用golang的web泊坞窗。 我想要做的是用compose连接两个docker,但是在我的golang代码中,我必须事先知道数据库docker的ip地址。 Golang main.go: db, err := sql.Open("mysql", "root:passsword@tcp(<should_be_database_docker_ip>:3306)/database") 泊坞窗,compose.yml version: '3' services: web: image: web_docker ports: – "8080" depends_on: – database database: image: mariadb ports: – "3306" environment: – MYSQL_ROOT_PASSWORD=password volumes: – /data:/var/lib/mysql 再次澄清,我不能简单地让主机是本地主机,因为我使用的数据库是在docker,通常是像172.17.0.2或.3但有时它会改变。 谢谢!

使用Docker for Development,我错过了这个观点吗?

如果您需要安装Python,Go,Ruby及其依赖项,以便在IDE(例如VS Code或Jetbrains等效项)中正常工作,那么使用Docker进行开发有什么意义? 没有它们,你就不会有一些开发工具,比如适当的debugging器。 看起来你需要做所有额外的步骤来设置开发有或没有docker。 那么为什么要使用它? 我理解部署,但不是为了开发。

不能在docker-machine上运行Docker镜像的Go(lang)应用程序(Virtual Box)

我有一个非常简单的应用程序。 这里是代码: package main import ( "fmt" "math/rand" "time" "net/http" "encoding/base64" "encoding/json" ) type Message struct { Text string `json:"text"` } var cookieQuotes = []string{ // Skipped all the stuff } const COOKIE_NAME = "your_cookie" func main() { http.HandleFunc("/set_cookie", setCookie) http.HandleFunc("/get_cookie", getCookie) http.Handle("/favicon.ico", http.NotFoundHandler()) http.ListenAndServe(":8080", nil) } func setCookie(w http.ResponseWriter, r *http.Request) { quote := […]

dockerfile安装去本地包可以吗?

我正在尝试用我的golang项目创build一个docker镜像。 该项目有一些像math一样的本地包: /myproject/ src/ main.go utils/ math.go 在main.go中,我包含了大量的包,但也包括math.go的 math 。 我的docker文件看起来像这样: FROM golang:latest ENV GOPATH=/golib/ RUN /usr/local/go/bin/go get github.com/julienschmidt/httprouter CMD /usr/local/go/bin/go run main.go EXPOSE 10004 我如何包括math包,因为它是一个本地包,所以它不在github上部署? yml文件: services: cozonac: image: cozonac:local ports: – "10004:10004" volumes: – ./src/:/go/ 谢谢

连接时Gorm + Docker错误

我试图用Docker连接到我的postgresql数据库: package main import ( "fmt" "log" "github.com/jinzhu/gorm" _ "github.com/jinzhu/gorm/dialects/postgres" ) type Product struct { gorm.Model Code string Price uint } var db *gorm.DB func init() { connection := fmt.Sprintf("host=db sslmode=disable user=dnz-dev password=dnz-dev") db, err := gorm.Open("postgres", connection) if err != nil { log.Fatalln(err) } defer db.Close() } func main() { // Migrate the schema […]

为什么docker容器中的应用程序不重新启动?

我已经部署了一些docker容器和golang应用程序。 其中一个我需要从这个命令开始: docker run –restart unless-stopped -it myapp /bin/bash 下一步我进入容器并编辑一些configuration文件,然后我运行 go build main.go 和./main之后,我按Ctrl + q,并离开它。 一切正常,所有的容器重新启动服务器后,完美重启。 但有一个问题,当myapp容器重新启动时,golang应用程序在容器仍然工作时不运行。 我必须再次input并运行./main 。 我怎样才能解决它? Dockerfile FROM golang:1.8 WORKDIR /go/src/app COPY . . RUN go-wrapper download # "go get -d -v ./…" RUN go-wrapper install # "go install -v ./…" RUN ["apt-get","update"] RUN ["apt-get","install","-y","vim"] EXPOSE 3000 CMD ["app"]

在Go中不能安装docker pkg dependency

我正在尝试在我的一个Go应用程序中使用docker包。 我在我的脚本中导入包作为import "github.com/dotcloud/docker" 。 但是当试图构build依赖关系时,也就是说,当我运行时go get我的项目目录,它说: foo.go:9:2: no buildable Go source files in /home/neville/gocode/src/github.com/dotcloud/docker 在这里,我的GOPATH被设置为/home/neville/gocode ,所以当这样做的go get ,软件包应该被下载到/home/neville/gocode/pkg ,而不是/home/neville/gocode/src 。 我在这里错过了什么?

docker的注册驱动程序在源代码中被初始化在哪里?

我试图了解Docker的源代码,同时学习Go。 Docker的一个让我困惑的区域是在75行的docker / daemon / graphdriver / driver.go中, strings映射的name属性被访问以获得types为InitFunc的函数。 但是,我似乎无法finddrivers的注册驱动器的初始化,似乎需要在某个地方完成。

构build运行编译后的代码的小容器

从https://docs.docker.com/articles/baseimages/ 我正在试图build立一个基本的图像来运行编译去代码,从: https : //github.com/tianon/dockerfiles/tree/master/true 我试图复制到docker的true.go 然后:exec:“/ true”:权限被拒绝 也试图冲进去,然后:“bash” 然后:$ PATH中找不到可执行文件 还尝试使用debootstrap raring raring> / dev / null 然后:“$ bash”:$ PATH中找不到可执行文件 你怎么做到这一点? 谢谢

如何使用Docker容器进行TCP传出连接?

My Go应用程序通过tls.Dial()来交换数据,从而实现TLS连接 。 从主机运行时,它工作正常: 但是当从Docker容器运行应用程序时,传出连接似乎不起作用。 该应用程序无限期挂起。 注1 :使用docker run -p $(docker-machine ip):2500:2500 …相同的行为docker run -p $(docker-machine ip):2500:2500 … 注意2 :虚拟机没有额外的端口转发设置,除了docker-machine默认虚拟机的默认设置。 使用Dockerfile构buildDocker镜像: FROM golang:latest RUN mkdir -p "$GOPATH/src/path/to/app" # Install dependencies RUN go get github.com/path/to/dep VOLUME "$GOPATH/src/path/to/app" EXPOSE 2500 WORKDIR "$GOPATH/src/path/to/app" CMD ["go", "run", "main.go"] 主机是OS X运行docker机 。 题 我怎样才能使TCP传出连接工作?