Запуск goconvey http-сервера из док-контейнера
Я использую Docker-контейнеры для некоторых моих проектов веб-сервисов golang, и часть рабочего процесса разработки использует goconvey для быстрой обратной связи. Я хотел бы раскрутить это в контейнере докера и открыть порт для хост-компьютера, чтобы я мог указать на него свой веб-браузер и получить код.
Мы скомпилировали двоичный файл goconvey и поместили его в /usr/local/bin. Проблема в том, что всякий раз, когда я подключаюсь к открытому порту из контейнера докера, я получаю только ошибки "404 Page not found".
У нас есть несколько настроек без GOPATH, в частности, я продаю свои библиотеки, например, GOPATH=/proj-dir/vendor и код разработки происходит в /src
Я могу заставить goconvey хорошо работать на моем хосте, но в докере я в тупике. 404 предполагают, что я бью сервер goconvey, но он ничего не обслуживает?
Любая помощь приветствуется.
1 ответ
Сервер goconvey возвращает 404, когда он не может найти каталог, содержащий статические ресурсы.
Расположение этого каталога зависит от того, где хранятся файлы goconvey, обычно в
$GOPATH/src/github.com/smartystreets/goconvey
Так что в вашем докер-контейнере убедитесь, что goconvey установлен с использованием текущей $GOPATH
значение, а также убедитесь, что /goconvey
каталог содержит /web/client/...
подкаталоги, в которых находятся файлы html, css и js для веб-интерфейса пользователя.
(Чтобы проверить это, я переименовал клиентский каталог, что заставило goconvey вернуть простое сообщение 404.)