mac
sudo su -
docker ps > dps.log
cat dps.log
2>&1
→ 에러가 나면 에러도 docker-prune.log에 저장하는 옵션
crontab -e
: 첫 실행이라면 사용할 툴 지정해야한다. (vim 2번 선택)
* * * * * sh /home/ubuntu/deploy.sh >> /home/ubuntu/deploy.log
//꺽쇠 > 한개이면 덮어쓰기 >> 두개면 누적
cd /home/ubuntu
ll로 확인
vim deploy.sh
#!/bin/bash
set -ex
docker pull registry.gitlab.com/syjang0501/mutsasns | grep "Image is up to date" && pull_status="already_pulled" || pull_status="newly_pulled"
echo $pull_status
if [ "$pull_status" = "newly_pulled" ]; then
docker stop codelion_mutsasns
docker rm -f codelion_mutsasns
docker run -d -p 8080:8080 --name codelion_mutsasns -e SPRING_DATASOURCE_URL=jdbc:mysql://ec2-3-39-233-233.ap-northeast-2.compute.amazonaws.com:3306/ec2-mutsasns -e SPRING_DATASOURCE_USERNAME=root -e SPRING_DATASOURCE_PASSWORD=seoyun2323 -e JWT_TOKEN_SECRET=hello registry.gitlab.com/syjang0501/mutsasns
docker image prune -f
fi
만약 root가 아닌 다른 권한으로 생성되었다면 파일 삭제 후 /home/ubuntu 위치에서 다시 만들어 주세요
rm <파일명>
date
cat <file>
pwd
exit
cp deploy.sh /home/ubuntu/
copy
stages:
- dockerbuild-push
package:
image: docker:latest
stage: dockerbuild-push
services:
- docker:dind
before_script:
- docker login registry.gitlab.com -u $GITLAB_USER -p $GITLAB_PASSWORD
script:
- docker build -t registry.gitlab.com/$GITLAB_USER/$PROJECT_NAME .
- docker push registry.gitlab.com/$GITLAB_USER/$PROJECT_NAME
after_script:
- docker logout
변화 : html -> xml -> json -> yml
ex)
json
{
name:kyeongrok,
age:37,
skills:[java, python, docker]
}
jwt:
token:
secret: hello.world.ee.ff
java → python
json → yml
.gitlab-ci.yml —> 명령어들을 묶어놓은 yml형식의 배포 스크립트