国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

golang - Tidak dapat menyambung ke MongoDB selepas menggunakan projek Go ke Docker
僅有的幸福
僅有的幸福 2017-05-16 13:17:18
0
2
1149

Saya mengikuti buku dan membuat Pelayan API Berikut ialah projeknya. Selepas projek dimulakan dan dijalankan secara tempatan mongod來啟動 MongoDB 是可以連接的。但是當(dāng)我打包 Server 成 docker 后(docker build -t taskmanager .),并且用容器啟動這個 Server(docker run --publish 8080:8080 taskmanager), saya tidak tahu cara menyambung ke pangkalan data seperti sebelum ini. Saya tidak tahu sama ada saya menulis Dockerfile salah atau jika port tidak ditetapkan dengan betul.

// 連接 mongodb
func createDbSession() {
    var err error
    session, err = mgo.DialWithInfo(&mgo.DialInfo{
        Addrs:    []string{"127.0.0.1"},
        Username: "",
        Password: "",
        Timeout:  60 * time.Second,
    })
    if err != nil {
        log.Fatalf("[createDbSession]: %s\n", err)
    }
}
// 報錯
$ docker run --publish 8080:8080 taskmanager
2017/04/25 13:37:59 [createDbSession]: no reachable servers

Fail Docker:

# golang image where workspace (GOPATH) configured at /go.
FROM golang

# Copy the local package files to the conainer's workspace
ADD . /go/src/github.com/Latias94/taskmanager

# Setting up working directory
WORKDIR /go/src/github.com/Latias94/taskmanager

# Get godeps for managing and restoring dependencies
RUN go get github.com/tools/godep

# Restore godep dependencies
RUN godep restore

# Build the taskmanager command inside the container.
RUN go install github.com/Latias94/taskmanager

# Run the taskmanager command when the container starts.
ENTRYPOINT /go/bin/taskmanager

# Service listens on port 8080.
EXPOSE 8080

Perlukah saya juga membungkus pangkalan data dalam Docker? Atau adakah terdapat sesuatu yang salah dengan cara saya memulakan Docker? Pelabuhan Mongodb ialah lalai 27017,項目如果成功啟動打開會顯示404。godep restoreKebergantungan projek boleh dipasang.


Kemas kini:

func createDbSession() {
    var err error
    // 改為 mgo.Dial
    session, err = mgo.Dial(AppConfig.MongoDBHost) // "mongo:27017"
    if err != nil {
        log.Fatalf("[GetSession]: %s\n", err)
    }
    if err != nil {
        log.Fatalf("[createDbSession]: %s\n", err)
    }
}

docker build -t taskmanager . cuba pautan selepas bina

$ docker run -it --link mongodb:mongo --name taskmanager2 taskmanager --publish 8080:8080
2017/04/26 13:17:07 Listening...

Kini ia boleh dimulakan, tetapi localhost:8080Saya tidak dapat melihat projek itu, dan saya tidak dapat mencari alamat pelayan..
Saya bercadang untuk membaca "The First Docker Book" dalam beberapa hari akan datang dan kemudian kembali untuk melihat pada masalah ini.
Terima kasih kepada responden.

僅有的幸福
僅有的幸福

membalas semua(2)
洪濤

Program dalam docker tidak boleh mengakses perkhidmatan hos. Anda juga harus menggunakan docker untuk menjalankan mongodb, dan kemudian gunakan arahan pautan untuk memautkan dua bekas

巴扎黑

Masalah anda tiada kaitan sama ada pautan dipautkan atau tidak
Docker tidak boleh mengakses perkhidmatan hos menggunakan 127.0.0.1 Anda mesti menggunakan IP dalaman atau luaran seperti 192.168.x.x

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan