Пустой ответ из контейнера Docker - PullRequest
0 голосов
/ 01 июля 2018

Я пытаюсь развернуть простой пример веб-сервера на экземпляре Droplet из Digital Ocean. Этот пример работает на моей машине для разработки (Windows), но не на моем сервере (Ubuntu).

Пробовал изнутри капельки:

curl localhost:8080

Получено:

curl: (52) Empty reply from server

docker ps показывает:

CONTAINER ID        IMAGE                    COMMAND              CREATED             STATUS              PORTS                            NAMES
9325cfbc60d5        myapp.com                "/bin/sh -c ./app"   36 minutes ago      Up 36 minutes       80/tcp, 0.0.0.0:8080->8080/tcp   myappcom_website_1

Применение:

package main

import (
    "net/http"
    "strings"
)

func sayHello(w http.ResponseWriter, r *http.Request) {
    message := r.URL.Path
    message = strings.TrimPrefix(message, "/")
    message = "Hello " + message

    w.Write([]byte(message))
}

func main() {
    http.HandleFunc("/", sayHello)
    if err := http.ListenAndServe(":8080", nil); err != nil {
        panic(err)
    }
}

Dockerfile:

# Build stage
FROM golang:alpine AS builder
WORKDIR /go/src/app
COPY . .
RUN apk add --no-cache curl 
RUN curl https://raw.githubusercontent.com/golang/dep/master/install.sh | sh
RUN dep ensure
RUN go install 

# Final stage
FROM alpine:latest
COPY --from=builder /go/bin/app /app
ENTRYPOINT ./app
LABEL Name=myapp.com Version=0.0.1
EXPOSE 8080:8080

докер-compose.yml:

version: '3.6'

services:
  website:
    image: myapp.com
    build: .
    ports:
      - 8080:8080

Почему?

РЕДАКТИРОВАТЬ: я отметил, что если я docker ps на моем компьютере разработчика, в «портах» он показывает 0.0.0.0:8080->8080/tcp, без порта 80, как в капле. Я не выставлял порт 80 на своей капле, поэтому мне интересно, почему он там показан. Может быть, цифровое изображение докера океана что-то испортило?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...