Dockerfile Instructions - Part 1 đ â
Dockerfile-āĻāϰ āĻĒā§āϰāϤāĻŋāĻāĻŋ āϞāĻžāĻāύ āĻāĻŽā§āĻā§āϰ āĻāĻ āĻāĻāĻāĻŋ āϞā§āϝāĻŧāĻžāϰ (Layer) āϤā§āϰāĻŋ āĻāϰā§āĨ¤ āĻāĻ āĻāĻžāĻāĻĄā§ āĻāĻŽāϰāĻž āĻŦā§āĻļ āĻāĻŋāĻā§ āĻā§āϰā§āϤā§āĻŦāĻĒā§āϰā§āĻŖ āĻāύā§āϏāĻā§āϰāĻžāĻāĻļāύ āĻāĻŦāĻ āϏā§āĻā§āϞ⧠āĻŦā§āϝāĻŦāĻšāĻžāϰā§āϰ āϏāĻ āĻŋāĻ āύāĻŋā§āĻŽ āύāĻŋā§ā§ āĻŦāĻŋāϏā§āϤāĻžāϰāĻŋāϤ āĻāϞā§āĻāύāĻž āĻāϰāĻŦā§āĨ¤
ā§§. FROM (āĻāĻŋāϤā§āϤāĻŋ āϏā§āĻĨāĻžāĻĒāύ) â
āĻĒā§āϰāϤāĻŋāĻāĻŋ Dockerfile āĻ
āĻŦāĻļā§āϝāĻ FROM āĻĻāĻŋā§ā§ āĻļā§āϰ⧠āĻšāĻŦā§āĨ¤ āĻāĻāĻŋ āĻāĻĒāύāĻžāϰ āĻāĻŽā§āĻā§āϰ Base Image āύāĻŋāϰā§āϧāĻžāϰāĻŖ āĻāϰā§āĨ¤
FROM ubuntu:20.04āĻŦā§āϏā§āĻ āĻĒā§āϰā§āϝāĻžāĻāĻāĻŋāϏ: āϏāĻŦāϏāĻŽā§ āĻāĻāĻāĻŋ āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻāĻžāϰā§āϏāύ (Tag) āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āύāĨ¤ latest āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāϞ⧠āĻāĻŦāĻŋāώā§āϝāϤ⧠āĻŦāĻŋāϞā§āĻĄā§ āϏāĻŽāϏā§āϝāĻž āĻšāϤ⧠āĻĒāĻžāϰā§āĨ¤
⧍. LABEL (āĻŽā§āĻāĻžāĻĄā§āĻāĻž) â
āĻāĻŽā§āĻā§ āĻ
āϤāĻŋāϰāĻŋāĻā§āϤ āϤāĻĨā§āϝ (āϝā§āĻŽāύ: āϞā§āĻāĻ, āĻāĻžāϰā§āϏāύ, āĻĄā§āϏāĻā§āϰāĻŋāĻĒāĻļāύ) āϝā§āĻ āĻāϰāϤ⧠LABEL āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž āĻšā§āĨ¤
LABEL maintainer="ripon@example.com"
LABEL version="1.0"
LABEL description="My Awesome Nginx Server"ā§Š. RUN (āĻāĻŽāĻžāύā§āĻĄ āĻāĻžāϞāĻžāύā§) â
āĻāĻŽā§āĻ āĻŦāĻŋāϞā§āĻĄ āĻāϰāĻžāϰ āϏāĻŽā§ āĻāύā§āĻā§āĻāύāĻžāϰā§āϰ āĻā§āϤāϰ⧠āĻā§āύ⧠āϏāĻĢāĻāĻā§ā§āϝāĻžāϰ āĻāύā§āϏāĻāϞ āĻŦāĻž āĻāύāĻĢāĻŋāĻāĻžāϰ āĻāϰāϤ⧠RUN āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž āĻšā§āĨ¤
- āĻā§āϞ āĻĒāĻĻā§āϧāϤāĻŋ (āĻŦā§āĻļāĻŋ āϞā§āϝāĻŧāĻžāϰ):dockerfile
RUN apt-get update RUN apt-get install -y nginx - āϏāĻ āĻŋāĻ āĻĒāĻĻā§āϧāϤāĻŋ (āĻāĻŽ āϞā§āϝāĻŧāĻžāϰ):dockerfile
RUN apt-get update && apt-get install -y \ nginx \ curl \ vim && \ rm -rf /var/lib/apt/lists/*> `&&` āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āĻāĻāĻžāϧāĻŋāĻ āĻāĻŽāĻžāύā§āĻĄ āĻāĻ āϞāĻžāĻāύ⧠āϞāĻŋāĻāϞ⧠āϞā§āϝāĻŧāĻžāϰ āϏāĻāĻā§āϝāĻž āĻāĻŽā§ āĻāĻŦāĻ āĻāĻŽā§āĻ āϏāĻžāĻāĻ āĻā§āĻ āĻĨāĻžāĻā§āĨ¤
ā§Ē. WORKDIR (āĻĄāĻŋāϰā§āĻā§āĻāϰāĻŋ āϏā§āĻ āĻāϰāĻž) â
āĻāĻāĻŋ Linux-āĻāϰ cd āĻāĻŽāĻžāύā§āĻĄā§āϰ āĻŽāϤ⧠āĻāĻžāĻ āĻāϰā§āĨ¤ āĻāĻāĻŋ āϏā§āĻ āĻāϰāϞ⧠āĻĒāϰāĻŦāϰā§āϤ⧠āϏāĻŦ āĻāĻŽāĻžāύā§āĻĄ (RUN, COPY, CMD) āĻāĻ āĻĢā§āϞā§āĻĄāĻžāϰ⧠āĻāĻžāϰā§āϝāĻāϰ āĻšāĻŦā§āĨ¤
WORKDIR /app(āϝāĻĻāĻŋ āĻĢā§āϞā§āĻĄāĻžāϰāĻāĻŋ āύāĻž āĻĨāĻžāĻā§, āĻĄāĻāĻžāϰ āϏā§āĻāĻŋ āĻ āĻā§āĻŽā§āĻāĻŋāĻ āϤā§āϰāĻŋ āĻāϰ⧠āύā§āĻŦā§)āĨ¤
ā§Ģ. COPY vs ADD â
āĻāĻā§āĻ āĻĢāĻžāĻāϞ āĻāĻĒāĻŋ āĻāϰāĻžāϰ āĻāĻžāĻ āĻāϰā§, āĻāĻŋāύā§āϤ⧠āĻāĻĻā§āϰ āĻŽāϧā§āϝ⧠āĻāĻŋāĻā§ āĻĒāĻžāϰā§āĻĨāĻā§āϝ āĻāĻā§:
- COPY: āĻļā§āϧā§āĻŽāĻžāϤā§āϰ āϞā§āĻāĻžāϞ āĻŽā§āĻļāĻŋāύ āĻĨā§āĻā§ āĻĢāĻžāĻāϞ āĻāύā§āĻā§āĻāύāĻžāϰ⧠āĻāĻĒāĻŋ āĻāϰāĻžāϰ āĻāύā§āϝāĨ¤ (āϏāĻŦāĻā§āϝāĻŧā§ āύāĻŋāϰāĻžāĻĒāĻĻ āĻ āϰā§āĻāĻŽā§āύā§āĻĄā§āĻĄ)āĨ¤dockerfile
COPY . /app - ADD: āĻāĻāĻŋ āĻāĻāĻā§ āĻŦā§āĻļāĻŋ āĻļāĻā§āϤāĻŋāĻļāĻžāϞā§āĨ¤ āĻāĻāĻŋ āĻā§āύ⧠URL āĻĨā§āĻā§ āĻĢāĻžāĻāϞ āĻĄāĻžāĻāύāϞā§āĻĄ āĻāϰāϤ⧠āĻĒāĻžāϰ⧠āĻ
āĻĨāĻŦāĻž āĻā§āύ⧠āĻāĻŋāĻĒ āĻĢāĻžāĻāϞ (
.tar.gz) āĻāĻĒāĻŋ āĻāϰāϞ⧠āϏā§āĻāĻŋ āĻ āĻā§āĻŽā§āĻāĻŋāĻ āĻāύāĻāĻŋāĻĒ (Extract) āĻāϰ⧠āĻĢā§āϞā§āĨ¤dockerfileADD my_files.tar.gz /app
ā§Ŧ. āĻāĻĻāĻžāĻšāϰāĻŖ āĻĒā§āϰāĻāϞā§āĻĒ (Dockerfile) â
# ā§§. āĻŦā§āϏ āĻāĻŽā§āĻ
FROM ubuntu:20.04
# ⧍. āĻŽā§āĻāĻžāĻĄā§āĻāĻž
LABEL maintainer="dev-team"
# ā§Š. āĻāĻĒāĻĄā§āĻ āĻ āĻ
ā§āϝāĻžāĻĒ āĻāύā§āϏāĻāϞ
RUN apt-get update && apt-get install -y nginx
# ā§Ē. āĻāĻžāĻā§āϰ āĻāĻžā§āĻāĻž āĻ āĻŋāĻ āĻāϰāĻž
WORKDIR /var/www/html
# ā§Ģ. āĻāύā§āĻā§āύā§āĻ āĻāĻĒāĻŋ āĻāϰāĻž
COPY index.html .
# ā§Ŧ. āĻĒā§āϰā§āĻ
EXPOSE 80
# ā§. āϏā§āĻāĻžāϰā§āĻ āĻāĻŽāĻžāύā§āĻĄ
CMD ["nginx", "-g", "daemon off;"]> `RUN` āĻāĻŽāĻžāύā§āĻĄā§ āϏāĻŦāϏāĻŽā§ āĻā§āĻŽā§āĻĒā§āϰāĻžāϰāĻŋ āĻĢāĻžāĻāϞ āĻŦāĻž āĻā§āϝāĻžāĻļ āĻĄāĻŋāϞāĻŋāĻ āĻāϰ⧠āĻĻā§āĻŦā§āύ āϝāĻžāϤ⧠āĻāĻŽā§āĻā§āϰ āϏāĻžāĻāĻ āĻ āϝāĻĨāĻžāĻ āĻŦā§ āύāĻž āĻšā§āĨ¤