FROM python:3.9-slim -- baseImage WORKDIR /opt/app -- 작업디렉토리 COPY . /opt/app -- 현재 경로에서 /opt/app로 파일 복사 RUN pip install -r requirements.txt -- 컨테이너 안에서 명령어 실행 의존성 설치 CMD ["python3", "app.py"] -- 컨테이너 CMD 명령어 실행
docker build -t 원하는명칭:버전 . -- .은 현재 경로의 Dockerfile 있는 곳

- curl -LJO "https://s3.dualstack.us-east-1.amazonaws.com/gitlab-runner-downloads/latest/deb/gitlab-runner_${arch}.deb"
- dpkg -i gitlab-runner_.deb
- ps -ef | grep gitlab 으로 실행된 runner확인
- sudo su - : 시스템계정 로그인
- cd /etc/systemd/system
- vi gitlab-runner.service
- ExecStart값 변경
- cd ~ 루트 디렉토리로 이동
- vi .bash_logout 안에 값들 주석
- sudo systemctl daemon-reload
- sudo systemctl restart gitlab-runner
- sudo systemctl enable gitlab-runner
FROM gradle:7.6.0-jdk17 AS build
# 2. 컨테이너 내 작업 디렉토리 설정
WORKDIR /app
# 3. 로컬 프로젝트의 모든 파일을 컨테이너에 복사
COPY . .
# 4. Gradle을 사용하여 프로젝트 빌드 (./gradlew clean build 명령 실행)
RUN gradle clean build --no-daemon
# 5. OpenJDK 이미지를 사용하여 빌드된 애플리케이션을 실행할 준비
FROM openjdk:17-jdk-alpine
# 6. 실행 단계에서 사용할 작업 디렉토리 설정
WORKDIR /app
# 7. Gradle 빌드 단계에서 생성된 JAR 파일을 실행 환경으로 복사
COPY --from=build /app/build/libs/*.jar app.jar
# 8. 애플리케이션이 실행될 포트 설정 (Spring Boot 기본 포트: 8080)
EXPOSE 8080
# 9. 빌드된 JAR 파일을 실행 (Spring Boot 애플리케이션 실행)
ENTRYPOINT ["java", "-jar", "app.jar"]
PRJ_NAME=docker/study-app
ECR_URI=940482432505.dkr.ecr.ap-northeast-2.amazonaws.com
VERSION=$(shell git rev-parse --short HEAD)
build:
docker build -t $(PRJ_NAME):$(VERSION) .
push:
aws ecr get-login-password --region ap-northeast-2 | docker login --username AWS --password-stdin $(ECR_URI)
docker tag $(PRJ_NAME):$(VERSION) $(ECR_URI)/$(PRJ_NAME):$(VERSION)
docker tag $(PRJ_NAME):$(VERSION) $(ECR_URI)/$(PRJ_NAME):latest
docker push $(ECR_URI)/$(PRJ_NAME):$(VERSION)
docker push $(ECR_URI)/$(PRJ_NAME):latest
- docker pull 940482432505.dkr.ecr.ap-northeast-2.amazonaws.com/docker/study-app:64e31d4
- docker images 에서 name이나 id 확인
- docker run -d -p 8080:8080 --name study-container ad58627c61dd(여기는 name이나 id부분)