Pengantar Docker
Tim Sangster
Software Engineer @ DataCamp
FROM, RUN, dan COPY berinteraksi melalui sistem file.
COPY /projects/pipeline_v3/start.sh /app/start.sh
RUN /app/start.sh
Beberapa langsung memengaruhi instruksi lain:
WORKDIR: Mengubah direktori kerja untuk semua instruksi berikutnyaUSER: Mengubah pengguna untuk semua instruksi berikutnyaMemulai semua path dari root sistem file:
COPY /projects/pipeline_v3/ /app/
Menjadi tidak rapi saat memakai path panjang:
COPY /projects/pipeline_v3/ /home/my_user_with_a_long_name/work/projects/app/
Sebagai alternatif, gunakan WORKDIR:
WORKDIR /home/my_user_with_a_long_name/work/projects/
COPY /projects/pipeline_v3/ app/
Alih-alih memakai path penuh untuk setiap perintah:
RUN /home/repl/projects/pipeline/init.sh
RUN /home/repl/projects/pipeline/start.sh
Atur WORKDIR:
WORKDIR /home/repl/projects/pipeline/
RUN ./init.sh
RUN ./start.sh
Alih-alih memakai path penuh:
CMD /home/repl/projects/pipeline/start.sh
Atur WORKDIR:
WORKDIR /home/repl/projects/pipeline/
CMD start.sh
Perintah override juga akan berjalan di WORKDIR:
docker run -it pipeline_image start.sh
$$
Praktik terbaik
Ubuntu -> root secara default
FROM ubuntu --> Pengguna root secara default
RUN apt-get update --> Berjalan sebagai root
Instruksi USER di Dockerfile:
FROM ubuntu --> Pengguna root secara default
USER repl --> Mengubah pengguna ke repl
RUN apt-get update --> Berjalan sebagai repl
Dockerfile yang mengatur pengguna ke repl:
FROM ubuntu --> Pengguna root secara default
USER repl --> Mengubah pengguna ke repl
RUN apt-get update --> Berjalan sebagai repl
Juga akan memulai container dengan pengguna repl:
docker run -it ubuntu bash
repl@container: whoami
repl
| Penggunaan | Instruksi Dockerfile |
|---|---|
| Ubah direktori kerja saat ini | WORKDIR <path> |
| Ubah pengguna saat ini | USER <user-name> |
Pengantar Docker