問題
を動作しません。しかし、ドッカーコンテナ内の私のアプリケーション内のネットワーク内の他のコンテナのホスト名のドメイン名解決は失敗しますが、wget
/ping
他のコンテナとそのホスト名が正しく解決されています。ハスケル - アルパインドッカーの画像内のホスト名の解決は、私は内部のHaskellのアプリケーションとのドッキングウィンドウの画像を作成しようとしています
根本的な原因を見つけるために、私は手動でホスト名(Network.DNS
パッケージを使用)を解決して、servant-client
のIPアドレスのみを使用しようとしました。しかし、これは単なる不可解なエラーメッセージが得られます。
Network.BSD.getProtocolByName: does not exist (no such protocol name: udp)
私は私が私のドッキングウィンドウの画像内のいくつかのパッケージをしないのですね。 libc6-compat
をインストールしようとしましたが、成功しませんでした(Debianのlibc6
はHaskellアプリケーションのコンパイルに使用されました)。さらに、/etc/protocols
には正しいエントリが含まれています。ドッカーの画像の中には何が欠けていますか? Whole dockerfile, there's not much in it - 私は、アプリケーションを実行するために使用しています
ドッカー画像
ドッキングウィンドウの画像はalpine:3.6
です。これは、アプリケーションを構築するために使用されたイメージとは異なるイメージです(20倍小さい)。
私がhaskellアプリケーションを構築するために使用しているドッカーの画像は、debian:stretch
に基づいています。 Dockerfile。ビルド手順と
全体のソースコードは、(角部分をスキップすることができます)ここにあります:あなたが実行するために、あなたのHaskellコードのためのいくつかのリンクの依存関係が欠落しているよう
https://github.com/carbolymer/blockchain/tree/0b041875f71b2a09dc8568ee7b0cc22460fd5624
'strace'を試しましたか? – melpomene
Dockerの中で: 'strace:attach:ptrace(PTRACE_ATTACH、1):操作が許可されていません。 ' – carbolymer
haskellはインタプリタなしで実行するバイナリをビルドしますか?コードを実行するために外部バイナリを必要とするjava、ruby、nodejとは異なります。 – Matt