Sobes.tech
Junior — Middle

Ön derleme gerektiren diller ve yorumlanan diller için Dockerfile'ların özellikleri nelerdir?

sobes.tech yapay zeka

AI'dan gelen yanıt

Önceden derlenmiş diller (örneğin, Java, C++) için Dockerfile genellikle bir derleme aşaması (build stage) içerir, burada kaynak kodu ikili dosyalara derlenir ve ardından uygulamayı çalıştırmak için minimal bir görüntü oluşturulur. Bu, nihai görüntünün boyutunu küçültmeye ve derleme sürecini çalıştırmadan ayırmaya olanak tanır.

Yorumlayıcı diller (örneğin, Python, JavaScript) için Dockerfile genellikle yalnızca kaynak kodu kopyalar ve gerekli bağımlılıkları kurar, çünkü derleme gerekmez. Bu durumda, görüntü uygulamayı çalıştırmak için gereken yorumlayıcı ve tüm kütüphaneleri içerir.

Java için örnek (çok aşamalı derleme):

FROM maven:3.8.5-openjdk-17 AS build
WORKDIR /app
COPY pom.xml .
COPY src ./src
RUN mvn package -DskipTests

FROM openjdk:17-jdk-slim
COPY --from=build /app/target/app.jar /app/app.jar
ENTRYPOINT ["java", "-jar", "/app/app.jar"]

Python için örnek:

FROM python:3.10-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY . .
CMD ["python", "app.py"]