Traffine I/O

Bahasa Indonesia

2022-06-11

Argumen Pembangunan dalam Docker

Argumen Pembangunan dalam Docker

Instruksi ARG pada Dockerfile memungkinkan Anda untuk menentukan variabel yang dapat digunakan selama proses pembangunan gambar. Variabel-variabel ini disebut argumen pembangunan, dan dapat digunakan untuk menyesuaikan proses pembangunan, sehingga lebih dinamis dan fleksibel.

Untuk menentukan argumen pembangunan, gunakan instruksi ARG dalam Dockerfile Anda:

Dockerfile
ARG MY_VARIABLE=default_value

Argumen pembangunan kemudian dapat digunakan dalam berbagai instruksi di dalam Dockerfile. Sebagai contoh:

Dockerfile
FROM node:14
ARG MY_VARIABLE
RUN echo "The value of MY_VARIABLE is: $MY_VARIABLE"

Untuk memasukkan nilai untuk argumen pembangunan selama proses pembangunan, gunakan flag --build-arg dengan perintah docker build:

bash
$ docker build --build-arg MY_VARIABLE=my_value -t my_image .

ENV vs. ARG

Kedua instruksi ARG dan ENV digunakan untuk menentukan variabel dalam Dockerfile. Namun, terdapat beberapa perbedaan antara keduanya:

  • Variabel ARG hanya tersedia selama proses pembangunan, sementara variabel ENV ada dalam gambar yang dihasilkan dan tersedia selama runtime wadah.
  • Variabel ARG dapat ditimpa selama proses pembangunan dengan flag --build-arg, sementara variabel ENV dapat ditimpa selama runtime wadah dengan flag -e atau melalui file lingkungan.

Memparametrikakan Pembangunan Docker

Argumen pembangunan menyediakan cara yang efisien untuk memparametrikakan pembangunan Docker Anda. Ini dapat sangat berguna ketika Anda perlu membangun gambar dengan konfigurasi yang berbeda atau ketika Anda ingin menghindari hardcoding nilai dalam Dockerfile Anda.

Sebagai contoh, Anda dapat memparametrikakan versi gambar dasar atau instalasi paket tambahan:

Dockerfile
ARG BASE_IMAGE_VERSION=latest
FROM node:${BASE_IMAGE_VERSION}

ARG ADDITIONAL_PACKAGES=""
RUN apt-get update && apt-get install -y $ADDITIONAL_PACKAGES

Multi-stage Builds dengan Argumen

Multi-stage builds memungkinkan Anda mengoptimalkan gambar Docker Anda dengan menggunakan tahapan-tahapan pembangunan terpisah untuk menghasilkan gambar akhir yang minimal. Argumen pembangunan dapat digunakan di seluruh tahap yang berbeda untuk menyesuaikan proses pembangunan.

Berikut contoh multi-stage builds dengan argumen pembangunan:

Dockerfile
ARG BASE_IMAGE_VERSION=latest
FROM node:${BASE_IMAGE_VERSION} as build
ARG MY_VARIABLE
WORKDIR /app
COPY . .
RUN npm install && npm run build

FROM node:${BASE_IMAGE_VERSION}-slim as production
ARG MY_VARIABLE
WORKDIR /app
COPY --from=build /app/dist /app/dist
RUN echo "The value of MY_VARIABLE in the production stage is: $MY_VARIABLE"
CMD ["npm", "start"]

Pada contoh di atas, kita menggunakan argumen pembangunan MY_VARIABLE di kedua tahap pembangunan dan produksi. Ini menunjukkan bagaimana argumen pembangunan dapat dimanfaatkan di seluruh tahap yang berbeda dalam multi-stage builds untuk menjaga konsistensi dan menghindari duplikasi kode.

Ryusei Kakujo

researchgatelinkedingithub

Focusing on data science for mobility

Bench Press 100kg!