Di buruh pelabuhan saya ingin melakukan ini:
git clone XYZ
cd XYZ
make XYZ
Namun karena tidak ada perintah cd, saya harus melewati path lengkap setiap saat (membuat XYZ / fullpath). Ada solusi bagus untuk ini?
Di buruh pelabuhan saya ingin melakukan ini:
git clone XYZ
cd XYZ
make XYZ
Namun karena tidak ada perintah cd, saya harus melewati path lengkap setiap saat (membuat XYZ / fullpath). Ada solusi bagus untuk ini?
Jawaban:
Anda dapat menjalankan skrip, atau parameter yang lebih kompleks ke RUN. Berikut adalah contoh dari Dockerfile yang saya unduh untuk melihat sebelumnya:
RUN cd /opt && unzip treeio.zip && mv treeio-master treeio && \
rm -f treeio.zip && cd treeio && pip install -r requirements.pip
Karena penggunaan '&&', itu hanya akan sampai ke perintah 'pemasangan pipa' terakhir jika semua perintah sebelumnya telah berhasil.
Bahkan, karena setiap RUN membuat komit baru & (saat ini) lapisan AUFS, jika Anda memiliki terlalu banyak perintah di Dockerfile, Anda akan menggunakan batas, jadi menggabungkan RUN (ketika file stabil) dapat menjadi sangat hal yang berguna untuk dilakukan.
cd
hanya berlangsung untuk RUN
perintah saat ini . Selanjutnya RUN
akan dimulai dari saat ini WORKDIR
.
Untuk mengubah ke direktori lain gunakan WORKDIR . Semua perintah RUN, CMD dan ENTRYPOINT setelah WORKDIR akan dieksekusi dari direktori itu.
RUN git clone XYZ
WORKDIR "/XYZ"
RUN make
RUN git clone http://username:password@url/example.git
WORKDIR /folder
RUN make