Saya bisa membangun Dockerfile seperti
docker build -t deepak/ruby .
Tetapi untuk Dockerfile yang tidak bernama Dockerfile
# DOCKER-VERSION 0.4.8
FROM deepak/ruby
MAINTAINER Deepak Kannan "[email protected]"
RUN ./bin/rails s
mari kita katakan itu disebut Dockerfile.app
yang kita bangun dengan
docker build -t deepak/app Dockerfile.app
kemudian saya mendapatkan kesalahan
Uploading context 0 bytes
Error build: EOF
EOF
docker build --help
ada baris di mana Anda dapat menemukan apa yang Anda cari: -f, --file string Nama Dockerfile (Defaultnya adalah 'PATH / Dockerfile')Jawaban:
Perhatikan ada titik
.
di akhir kedua perintah.Atau dengan tag:
sumber
docker build -f Dockerfile.consumer
memberi saya kesalahan "buruh pelabuhan" membutuhkan tepat 1 argumen. Lihat 'docker build --help'. Penggunaan: docker build [OPTIONS] PATH | URL | -.
) di akhir perintah di atas?.
bukanlah hal yang wajib. Perintah build membutuhkan dua args yaitu. jalur keDockerfile
& jalur kecontext
direktori. Jadi, kita bisa melakukannyadocker build -t mysupertag -f ./foo/Dockerfile ./foo
Ini bekerja
Dokumentasi pembuatan Docker
sumber
Parameter terakhir untuk membangun buruh pelabuhan adalah jalur pembangunan, bila Anda meletakkannya
.
berarti ini adalah jalur di mana Anda akan menemukanDockerfile
. Ketika Anda mengubahnya menjadiDockerfile.app
itu maka akan mencoba dan mencariDockerfile.app/Dockerfile
, yang tidak benar.Saya tidak yakin apakah itu akan tetap berfungsi, tetapi Anda dulu dapat melakukan ini.
Cobalah dan lihat apakah itu membantu, jika tidak, mungkin buka masalah buruh pelabuhan untuk menambahkan fitur ini kembali, atau perbarui dokumentasi tentang cara menggunakan Dockerfile dengan nama yang berbeda.
Info lebih lanjut di sini: http://docs.docker.io/en/latest/commandline/command/build/
sumber
docker build - < Dockerfile
tidak mengizinkan saya untuk MENAMBAHKAN file lokal. Tetapi telah mencobanya dan berhasilCoba dockerfeed . Ia menggunakan fitur buruh pelabuhan untuk membangun konteks melalui stdin. Saya menulis naskah untuk mengatasi masalah Anda yang saya hadapi sendiri.
Untuk mengganti Dockerfile dengan yang berbeda Anda melakukannya seperti ini:
Dan voila. Dockerfeed melakukan hal yang sama seperti
docker build
. Ini mengemas sumber dengan Dockerfile tetapi memungkinkan Anda menukar Dockerfile lama dengan yang diinginkan. Tidak ada file yang dibuat dalam prosesnya, tidak ada sumber yang diubah. Arsip tar yang dihasilkan disalurkan ke buruh pelabuhan, yang pada gilirannya mengirimkannya ke daemon buruh pelabuhan.Pembaruan: Ini adalah jawaban yang valid di masa lalu ketika tidak ada
-f
tombol yang tersedia. Dengan buruh pelabuhan versi 1.5 opsi ini diperkenalkan. Sekarang Anda dapat membangun menyediakan Dockerfile yang berbeda seperti ini:sumber
Anda dapat mencapai ini juga dengan menggunakan docker-compose.
Di docker-compose.yml Anda di bawah bagian build, Anda dapat menentukan direktori tempat Anda menyimpan dockerfile dan nama alternatifnya sebagai berikut:
buruh pelabuhan-menulis
sumber
Mari kita asumsikan bahwa Anda telah berhasil menginstal kotak alat buruh pelabuhan termasuk docker-compose dan docker-machine . Ini adalah buruh pelabuhan-compose.yml saya
Dan ini di bawah Dockerfile
Pastikan file-file tersebut terletak tepat di bawah folder root. Ketika Anda menjalankan docker-compose maka Anda akan membangun image untuk web.
sumber
Kasus saya ada di
/tmp
direktori dan ada banyak file dan pekerja galangan coba dengan file lain meskipun saya lulus-f <Dockerfile.foo>
Solusi paling bersih dan mudah (untuk saya) adalah (lihat
dockerfeed
jawaban di atas):sumber
Pengguna Windows harus mencoba perintah di bawah ini:
sebagai contoh :
sumber