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"]