2017-02-09 3 views
0

テキストを出力する非常に単純なアプリケーションを作成しました。Dockerコンテナ(Ubuntu)のウィンドウで作成したGoアプリを実行

私の開発環境はWindows + Docker for Windowsです。私はその後、私は共有フォルダに「myappに」ファイルをコピーして、私のコンテナの共有フォルダにそれを見るUbuntuのコンテナを作成した後、Ubuntuの

set GOARCH=amd64 
set GOOS=linux 
go build -o "myapp" 

のためのWindowsでの自分のアプリケーションを構築します。 私はコンテナ内でそれを実行しようが、私はそれを実行することはできませんなぜエラー

enter image description here

があります後は?それは間違って構築されたか、何か間違った方法で実行しようとしましたか?

私のexeファイルを実行すると、私はこの出力を持っており、私はUbuntuで何か同じものを望みます。

enter image description here

としては、私は./myappを試してみて、ExecのフォーマットエラーUbuntuと他のLinuxシステム上で

enter image description here

+2

外myappのをコピーしようと、あなたはしてみてくださいましたか? '。/ myapp' – ymonad

+0

あなたは*を*にコピーしますが、どこから*を取るかは書きません。ビルド・コマンドは、installコマンド以外の別のターゲット・ディレクトリーを使用します。 – Wolf

+0

ビルド実行後、src/myProjectフォルダから結果を取得しました。新しいファイルがそこに現れ、コンテナにコピーされました – Vitalii

答えて

1

がある提案UPDATE、ちょうどmyappPATHからmyappを見つけようとします環境変数。

./myapp 

または完全なパスを使用します:

/__shared/myapp 

をUPDATE:特に現在のディレクトリ内の実行ファイルを探すために、あなたが使用する必要があり、これが動作するために、あなたのファイルは、実行する必要があります。あなたはls -lを使用して、それを確認することができます

ls -l 
-rwxrwxr-x 1 user user 0 Feb 9 09:45 myapp 

あなたが最初の列に少なくとも一つの「x」が表示されない場合は、あなたが実行する必要があります。

chmod +x myapp 

を参照してくださいunderstanding-linux-file-permissionsの詳細については、主題

UPDATE:エラーcannot execute binary file: Exec format error'から来ることができ:

  • システムアーキテクチャとファイルの間のミスマッチ - >あなたのUbuntuマシンは、64ビット版であることを確認し、uname -afile myapp
  • の出力を比較
  • this threadによると、(Windowsホストでの)VMの共有フォルダ内のファイルを実行すると、トラブルを引き起こす可能性があります - > [共有フォルダ
+1

私があなたに言ったように私が電話をした後は、より良いことです。/ myapp:バイナリファイルを実行できません:Exec形式のエラー ':) 別の問題があります。 – Vitalii

+0

が答えを更新しました。これがあなたの問題を解決するかどうか教えてください。 – Derlin

+0

実行可能と思われます。 >>ルート@ 7dd1655ae5db:/ __共有#lsの-l >>合計1764 >> -rwxr-XR-xの1つのルートルート1804288 2017年2月9日myappの – Vitalii

関連する問題