MonoパッケージをDockerコンテナにインストールしようとしていますが、monoにはgit、autoconf、libtool、automake、build-essential、mono-devel、gettextパッケージが必要です。
私が抱えている問題は、libtoolがlibc-devを必要とし、libc-devがgccコンパイラを必要とすることです。
Dockerコンテナにはコンパイラがインストールされていませんが、ローカルマシンにはインストールされています。
arcolombo@acolombo:~/Documents/bedgraph_dockerfile$ dpkg --list |grep compiler
ii g++ 4:4.8.2-1ubuntu6 AMD64 GNU C++ compiler
ii g++-4.8 4.8.2-19ubuntu1 AMD64 GNU C++ compiler
ii gcc 4:4.8.2-1ubuntu6 AMD64 GNU C compiler
ii gcc-4.8 4.8.2-19ubuntu1 AMD64 GNU C compiler
ii hardening-includes 2.5ubuntu2.1 all Makefile for enabling compiler flags for security hardening
ii libllvm3.5:AMD64 1:3.5-4ubuntu2~trusty2 AMD64 Modular compiler and toolchain technologies, runtime library
ii libmono-compilerservices-symbolwriter4.0-cil 3.2.8+dfsg-4ubuntu1.1 all Mono.CompilerServices.SymbolWriter library (for CLI 4.0)
ii libxkbcommon0:AMD64 0.4.1-0ubuntu1 AMD64 library interface to the XKB compiler - shared library
ii mono-mcs 3.2.8+dfsg-4ubuntu1.1 all Mono C# 2.0 / 3.0 / 4.0 / 5.0 compiler for CLI 2.0 / 4.0 / 4.5
だから私の質問は、gccコンパイラをDockerコンテナに入れる最も簡単な方法は何ですか?これらのコンパイラディレクトリのボリュームをドッカーコンテナに作成するだけですか?
私がそれを必要とするかもしれないと思う理由は、私がウェブサイトを運営していて、そのウェブサイトがドッカー画像を直接実行するからです。
Dockerfileで:
FROM ubuntu
# ...
ENV DEBIAN_FRONTEND noninteractive
RUN apt-get update && \
apt-get -y install gcc mono-mcs && \
rm -rf /var/lib/apt/lists/*
私はそれを理解しているように、OPは用語を混同しており、おそらく尋ねることを意図していた:
gCCコンパイラをDockerにインストールするimage
私の答えは、質問のタイトルに対処することから始まり(containersに関して)、次に質問の意図に移ります(imagesに関して)。
コンテナでBASHシェルを実行できる場合、Dockerfileを操作する必要はありません。
たとえば、 docker run hello-world
の例のヒントを試してみます。
docker run -it ubuntu bash
次に、コンテナ内のシェルからこれらを実行します...
apt-get update
apt-get install gcc
重要な点は、最初にapt-get install
を実行しないと、未加工のDockerコンテナー内のapt-get update
が期待どおりに動作しない可能性があることです。期待して...
パッケージgccが見つかりません
g++
なしでapt-get update
をインストールしようとしたときのエラーメッセージは、 "regex"置換 によりさらに混乱します。
参照: http://www.liquidweb.com/kb/how-to-list-and-attach-to-docker-containers
docker ps -a ## list all available containers
そして
docker exec -ti [CONTAINER ID] bash
このライブ操作のアプローチは、OPが意図したとおりに画像を作成するためにも使用できます。 docker commit
を使用して、ライブコンテナーを新しいイメージとして保存します。
GCCおよび/または必要なツールの一部またはほとんどが既にインストールされている公式イメージを取得することもできます。 Dockerストアには多くの公式画像が既に設定されています: https://store.docker.com/search?page_size=99&q=&source=verified
正しいモノかどうかはわかりませんが、モノの画像があります: https://store.docker.com/images/4234a761-444b-4dea-a6b3-31bda725c427?tab=description
そして公式のGCCイメージ: https://store.docker.com/images/06ad851d-f666-47d3-9ef3-e90535c141ec?tab=description
自分で作成する場合はbuildpack-depsもあります: https://store.docker.com/images/9e56c286-5b40-4838-89fe-fd513c9c3bd6
カテゴリ別に参照できます: https://store.docker.com/search?page_size=99&q=&source=verified
また、モノまたは必要なものを直接ドッカーハブで検索します。 https://hub.docker.com/search/?isAutomated=0&isOfficial=0&page=1&pullCount=0&q=mono&starCount=