У меня проблемы с GET-запросом к конечной точке / biz в AWS с файлом Docker. Я сделал следующий проект на основе этого курса и хотел бы услышать ваше мнение.
Я выполнил все следующие команды в терминале
docker build -t projectname
docker tag projectname username/projectname
docker push username/projectname
ssh -i ~/.ssh/projectAWS.pem ec2-user@[public-DNS
Внутренний терминал AWS EC2
sudo yum update -y
sudo yum install -y dockersudo service docker start
sudo usermod -a -G docker ec2-user
docker run -d -p 80:80 usernam/projectname
Когда я нажимаю на свой общедоступный IPv4-адрес http://xxx.xxx.xxx/biz, ничего не возвращается, кроме «Этот сайт недоступен». Он работает на localhost: 80 / biz, когда Docker запускается локально. Ты думаешь, что-то мне не хватает? Нравится Dockerfile? Отсутствует импорт? Настройка AWS? Endpoints? или сам main.go? Заранее спасибо!
# Dockerfile from Docker
# Start from a Debian image with the latest version of Go installed
# and a workspace (GOPATH) configured at /go.
FROM golang
# Copy the local package files to the container's workspace.
ADD . /go/src/github.com/seintun/dinesty.ninja-backend
WORKDIR /go/src/github.com/seintun/dinesty.ninja-backend
# Build the outyet command inside the container.
RUN go get ./
RUN go build
# Run the outyet command by default when the container starts.
ENTRYPOINT /go/bin/dinesty.ninja-backend
# Document that the service listens on port 8080.
EXPOSE 8080
package main
import (
"log"
"net/http"
"os"
"github.com/gorilla/handlers"
"github.com/gorilla/mux"
ctrl "github.com/username/projectname/controllers"
)
func main() {
r := mux.NewRouter()
r.HandleFunc("/biz", ctrl.FetchBiz).Methods("GET")
rLog := handlers.LoggingHandler(os.Stdout, r)
if err := http.ListenAndServe(":8080", rLog); err != nil {
log.Fatal(err)
}
}
// Если вам интересно, что делает ctrl.FetchBiz, он просто получает JSON из mongoDB
пакет ctrl
import (
"encoding/json"
"io/ioutil"
"log"
"net/http"
. "github.com/username/projectname/models"
"gopkg.in/mgo.v2/bson"
mgo "gopkg.in/mgo.v2"
)
// FetchBiz return list of bizs
func (b *BizDAO) FetchBiz() ([]Biz, error) {
query := bson.M{"active": true}
var bizs []Biz
err := db.C(BCOLLECTION).Find(query).All(&bizs)
return bizs, err
}