質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
Go

Go(golang)は、Googleで開発されたオープンソースのプログラミング言語です。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

Q&A

解決済

1回答

1681閲覧

docker で go を実行したい.

退会済みユーザー

退会済みユーザー

総合スコア0

Go

Go(golang)は、Googleで開発されたオープンソースのプログラミング言語です。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

0グッド

0クリップ

投稿2020/04/12 06:43

Docker で Go を実行したいのですが go がないと言われてしまいます.ご教示ください

環境 ubuntu 18.04
dockerバージョン 19.03.8

go

1package main 2 3import ( 4 "fmt" 5 "log" 6 "net/http" 7) 8 9func main() { 10 http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { 11 log.Println("received request") 12 fmt.Fprintf(w, "Hello Docker!!") 13 }) 14 15 log.Println("start server") 16 server := &http.Server{Addr: ":8080"} 17 if error := server.ListenAndServe(); err != nil { 18 log.Println(err) 19 } 20}

以下,Dockerfile

FROM golang:1.9 RUN mkdir /echo COPY main.go /echo CMD ["go", 'run', "/echo/main.go"]

以下,実行コマンド

$ docker image build -t example/echo:latest . $ docker container run example/echo:latest /bin/sh: 1: [go,: not found

最後に start sever 表示を出したいです.

コンテナ内に go がなく,go のイメージが別にダウンロードされていて,対象のイメージにgoがないのが原因なのかとは思っているのですが解決方法がわかりません.

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

以下のTypoが原因かと

diff

1-CMD ["go", 'run', "/echo/main.go"] 2+CMD ["go", "run", "/echo/main.go"]

Goのversionが1.9である理由や、以下のファイルで error が未使用( err の間違え?)であることも気になります。。

go

1package main 2 3import ( 4 "fmt" 5 "log" 6 "net/http" 7) 8 9func main() { 10 http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { 11 log.Println("received request") 12 fmt.Fprintf(w, "Hello Docker!!") 13 }) 14 15 log.Println("start server") 16 server := &http.Server{Addr: ":8080"} 17 if error := server.ListenAndServe(); err != nil { 18 log.Println(err) 19 } 20}

投稿2020/04/12 06:51

d_tutuz

総合スコア730

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

d_tutuz

2020/04/12 06:55

補足ですが、golang:1.9 のイメージをもとに docker build しているので、コンテナには go のランタイムは含まれています。 またローカルからコンテナにリクエストを送信するためには、合わせて以下のようにする必要があります。 docker container run -p 8080:8080 example/echo:latest
退会済みユーザー

退会済みユーザー

2020/04/12 06:55

ありがとうございます.
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問