콘텐츠로 이동

Dockerfile 로 배포

zip 루트에 Dockerfile 이 있으면 자동 감지 대신 그걸로 빌드합니다. Go · Rust · Java · C++ 처럼 위 가이드에 없는 환경이거나, 빌드 과정을 직접 통제하고 싶을 때 쓰세요.

컨테이너가 0.0.0.03000 포트를 리슨해야 합니다.

EXPOSE 3000
Go
FROM golang:1.23 AS build
WORKDIR /src
COPY . .
RUN go build -o /app ./...
FROM gcr.io/distroless/base-debian12
COPY --from=build /app /app
ENV PORT=3000
EXPOSE 3000
CMD ["/app"]
Java (Spring Boot)
FROM eclipse-temurin:21-jdk AS build
WORKDIR /src
COPY . .
RUN ./gradlew bootJar --no-daemon
FROM eclipse-temurin:21-jre
COPY --from=build /src/build/libs/*.jar /app.jar
ENV SERVER_PORT=3000
EXPOSE 3000
CMD ["java", "-jar", "/app.jar"]
Python (직접 정의)
FROM python:3.12-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
EXPOSE 3000
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "3000"]

앱 하나만 배포됩니다. 데이터베이스가 필요하면 compose 로 띄우지 말고 포털에서 만드세요 — 앱이 다시 배포돼도 데이터가 남습니다.