diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
new file mode 100644
index 0000000000000000000000000000000000000000..bf3d76c47c588d50e3c2be13632e0320920840e9
--- /dev/null
+++ b/.gitlab-ci.yml
@@ -0,0 +1,37 @@
+stages:
+    - build
+    - deploy
+cache:
+    paths:
+        - .m2/repository
+        - ./target
+build:
+    #image: maven:3.8.5-openjdk-17 // 필요 없음
+    stage: build
+    artifacts:
+        when: always
+        paths:
+            - ./target/*.jar
+            - Dockerfile
+    script:
+        - 'mvn package'
+        - echo "Hello, you are at build stage."
+    only:
+        - main
+
+deploy:docker:
+    image: docker
+    services:
+        - "docker:dind"
+    stage: deploy
+    when: manual
+    before_script:
+        - docker login –u $DOCKER_HUB_USERID –p $DOCKER_HUB_PASSWORD
+    script:
+        - docker build -t myspringweb .
+        - docker tag myspringweb $DOCKER_HUB_USERID/myspringweb
+        - docker push $DOCKER_HUB_USERID/myspringweb
+    after_script:
+        - docker logout
+    only:
+        - main
\ No newline at end of file