タグ付けされた質問 「dockerfile」

Dockerfileは、Dockerイメージをビルドするための指示を含むファイルです

9
Docker-mysql接続の準備ができているかどうかのcomposeチェック
dbコンテナーが開始され、接続を受け入れる準備ができるまで、アプリコンテナーが移行/開始を実行しないようにしようとしています。 そこで、ヘルスチェックを使用することにし、dockercomposeファイルv2のオプションに依存します。 アプリでは、私は以下を持っています app: ... depends_on: db: condition: service_healthy 一方、dbには次のヘルスチェックがあります db: ... healthcheck: test: TEST_GOES_HERE timeout: 20s retries: 10 私は次のようないくつかのアプローチを試しました: dbDIRが作成されていることを確認する test: ["CMD", "test -f var/lib/mysql/db"] mysqlバージョンの取得: test: ["CMD", "echo 'SELECT version();'| mysql"] 管理者にpingを実行します(dbコンテナーを正常としてマークしますが、有効なテストではないようです) test: ["CMD", "mysqladmin" ,"ping", "-h", "localhost"] 誰かがこれに対する解決策を持っていますか?

5
Docker-イメージオペレーティングシステム「windows」はこのプラットフォームでは使用できません
私は自分のWindows10マシンでこれを試しました: Dockerfile: From microsoft/nanoserver CMD ["echo", "Hello World"] PS C:\FSD\Docker\Trial1> docker build -t lea/leatest . Sending build context to Docker daemon 2.048kB Step 1/2 : FROM microsoft/nanoserver latest: Pulling from microsoft/nanoserver bce2fbc256ea: Pulling fs layer 58f68fa0ceda: Pulling fs layer image operating system "windows" cannot be used on this platform

4
Dockerfileでスクリプトを実行する
Dockerfileでビルドプロセス中にスクリプトを実行しようとしています。しかし、それはうまくいかないようです。 私はそのように試しました: FROM php:7-fpm ADD bootstrap.sh / ENTRYPOINT ["/bin/bash", "/bootstrap.sh"] また、このように: FROM php:7-fpm ADD bootstrap.sh / RUN bash -c "/bootstrap.sh" また、実行中のコンテナを実行します。 docker exec symfony /bin/bash -c "/bootstrap.sh" 何も機能していないようです。 あなたはそれを行う方法を知っていますか?


3
ファイルの変更時にDockerコンテナを再構築する
ASP.NET Coreアプリケーションを実行するために、アプリケーションをビルドし、Jenkinsを使用してGitによってフェッチされたソースコードをコンテナーにコピーするdockerfileを生成しました。したがって、私のワークスペースでは、dockerfileで次のことを行います。 WORKDIR /app COPY src src JenkinsはGitを使用してホスト上のファイルを正しく更新しますが、Dockerはこれをイメージに適用しません。 構築するための私の基本的なスクリプト: #!/bin/bash imageName=xx:my-image containerName=my-container docker build -t $imageName -f Dockerfile . containerRunning=$(docker inspect --format="{{ .State.Running }}" $containerName 2> /dev/null) if [ "$containerRunning" == "true" ]; then docker stop $containerName docker start $containerName else docker run -d -p 5000:5000 --name $containerName $imageName fi …

4
E:パッケージ 'mysql-client'には、dockercomposeを使用したphp-fpmイメージビルドにインストール候補がありません
Dockerはかなり新しいので、laravelプロジェクトを使用して詳細を学習しようとしています。このチュートリアルに従ってください。 https://www.digitalocean.com/community/tutorials/how-to-set-up-laravel-nginx-and-mysql-with-docker-compose?comment=77842 Dockerfileをチュートリアルの内容から少し調整しましたが、チュートリアルファイルでも同じ結果になります。 FROM php:7.3-fpm # Copy composer.lock and composer.json COPY composer.lock composer.json /var/www/ # Install dependencies RUN curl -sL https://deb.nodesource.com/setup_10.x | bash - && \ apt-get update && apt-get install -y mysql-client \ RUN npm install -g npm # Clear cache RUN apt-get clean && rm -rf /var/lib/apt/lists/* # …



5
dockerがDockerfileをビルドするときにRUNnpmインストール命令をキャッシュする方法
現在、アプリケーション用のノードバックエンドを開発しています。それをドッキングするとき(docker build .)、最も長いフェーズはRUN npm installです。このRUN npm install命令は、サーバーコードが少し変更されるたびに実行されるため、ビルド時間が長くなり、生産性が低下します。 アプリケーションコードが存在する場所でnpminstallを実行し、ADD命令を使用してnode_modulesをコンテナーに追加すると、この問題が解決することがわかりましたが、ベストプラクティスにはほど遠いです。それは、それをドッキングするという考え全体を壊し、コンテナの重量を大幅に増加させます。 他の解決策はありますか?

6
新しい行を保持しながら、Dockerfileで複数行のコマンドを作成するにはどうすればよいですか?
Dockerfileに次のRUNコマンドを書きたい。しかし、dockerは新しいラインを保持していません。 RUN echo "[repo] \ name = YUM Repository \ baseurl = https://example.com/packages/ \ enabled = 1 \ gpgcheck = 0" > /etc/yum.repos.d/Repo.repoxyz \各行の終わりで新しい行をエスケープすることを私は知っています。しかし、新しい行を保持して複数の行を書くことができる方法はありますか?

12
Dockerマシンにローカルボリュームをマウントする方法
docker-composeでdocker-machineを使用しようとしています。docker-compose.ymlファイルの定義は次のとおりです。 web: build: . command: ./run_web.sh volumes: - .:/app ports: - "8000:8000" links: - db:db - rabbitmq:rabbit - redis:redis 実行している場合はdocker-compose up -d、すべてのコマンドを実行しようとまではうまくいくと、エラーが生成されます。 コンテナを起動できませんb58e2dfa503b696417c1c3f49e2714086d4e9999bd71915a53502cb6ef43936d:[8]システムエラー:exec: "./run_web.sh":stat ./run_web.sh:そのようなファイルまたはディレクトリはありません ローカルボリュームはリモートマシンにマウントされていません。webappsのコードを使用してローカルボリュームをマウントするための推奨戦略は何ですか?


3
CI / CDパイプライン実装でのさまざまなテナントのDockerfileの動的な管理
私は、Docker、Kubernetes、およびJenkinsを使用して、プロジェクトのCI / CDパイプラインを実装しようとしています。私のアプリケーションはマルチテナントアプリケーションで、データベースアプリケーションの変数はすべて、テナントごとに異なります。 アプリケーション戦略 Dockerイメージを構築するときは、Dockerfileを使用しています。そして、DockerfileをSVNコードリポジトリ内に保持します。すべてのテナントで、コードリポジトリは同じです。イメージを構築するときは、その時点で、テナントごとに異なるイメージを構築する必要があります。 Dockerfileの実装 私のドッカーファイルに次のようなエントリポイントを追加しています、 ENTRYPOINT ["java", "-jar", "-Dspring.profiles.active=tenant1config" , "TestProject.war"] 別のテナントのDockerイメージを構築する必要がある場合は、追加する必要があります -Dspring.profiles.active=tenant2config したがって、Dockerfileのエントリポイントは動的です。 私の混乱 動的にDockerfile内のエントリポイントコマンドを管理することは可能ですか? または、別のテナント用に別のDockerfileを追加する必要がありますか?また、別のテナントに対してdocker buildコマンドを個別に実行する必要がありますか? この問題の標準的な実装方法を見つけるにはどうすればよいですか?

2
Docker&Laravel:configure:エラー:パッケージ要件(鬼車)が満たされていません
誰でもこの問題で私を助けることができますか? laravelアプリケーションのdockerfileからdockerイメージを作成しようとすると、次のエラーが発生します。 onigurumaをチェックしています... no configure:エラー:パッケージ要件(oniguruma)が満たされていません: No package 'oniguruma' found Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. Alternatively, you may set the environment variables ONIG_CFLAGS and ONIG_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details. コマンド '/ …

3
standard_init_linux.go:211:execユーザープロセスが「exec形式エラー」を引き起こした
以下のminikube windows 10システムで実行されるpythonスクリプト用のDockerfileを構築していますが、これは私のDockerfileです 以下のコマンドを使用してドッカーを構築する docker build -t python-helloworld . そしてそれをminikube docker demonにロードします docker save python-helloworld | (eval $(minikube docker-env) && docker load) Dockerファイル FROM python:3.7-alpine #add user group and ass user to that group RUN addgroup -S appgroup && adduser -S appuser -G appgroup #creates work dir WORKDIR /app #copy …

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.