Run appleboy/ssh-action@master
with:
host: ***
username: ec[2](https://github.com/yonghwankim-dev/be-java-cafe-max/actions/runs/5430382845/jobs/9877274493#step:9:2)-user
key: ***
script: docker pull ***/be-java-cafe-max:latest
docker stop $(docker ps -a -q)
docker run -d --log-driver=syslog -p 8080:8080 ***/be-java-cafe-max:latest
docker rm $(docker ps --filter 'status=exited' -a -q)
docker image prune -a -f
port: 22
timeout: [3](https://github.com/yonghwankim-dev/be-java-cafe-max/actions/runs/5430382845/jobs/9877274493#step:9:3)0s
command_timeout: 10m
proxy_port: 22
proxy_timeout: 30s
env:
JAVA_HOME: /opt/hostedtoolcache/Java_Temurin-Hotspot_jdk/11.0.19-7/x6[4](https://github.com/yonghwankim-dev/be-java-cafe-max/actions/runs/5430382845/jobs/9877274493#step:9:4)
JAVA_HOME_11_X64: /opt/hostedtoolcache/Java_Temurin-Hotspot_jdk/11.0.19-7/x64
/usr/bin/docker run --name a6c8c84478a17774940f4b[5](https://github.com/yonghwankim-dev/be-java-cafe-max/actions/runs/5430382845/jobs/9877274493#step:9:5)2138cfde0[6](https://github.com/yonghwankim-dev/be-java-cafe-max/actions/runs/5430382845/jobs/9877274493#step:9:6)88e0_9b54[7](https://github.com/yonghwankim-dev/be-java-cafe-max/actions/runs/5430382845/jobs/9877274493#step:9:7)6 --label 2a6c[8](https://github.com/yonghwankim-dev/be-java-cafe-max/actions/runs/5430382845/jobs/9877274493#step:9:8)c --workdir /github/workspace --rm -e "JAVA_HOME" -e "JAVA_HOME_11_X64" -e "INPUT_HOST" -e "INPUT_USERNAME" -e "INPUT_KEY" -e "INPUT_SCRIPT" -e "INPUT_PORT" -e "INPUT_PASSPHRASE" -e "INPUT_PASSWORD" -e "INPUT_SYNC" -e "INPUT_USE_INSECURE_CIPHER" -e "INPUT_CIPHER" -e "INPUT_TIMEOUT" -e "INPUT_COMMAND_TIMEOUT" -e "INPUT_KEY_PATH" -e "INPUT_FINGERPRINT" -e "INPUT_PROXY_HOST" -e "INPUT_PROXY_PORT" -e "INPUT_PROXY_USERNAME" -e "INPUT_PROXY_PASSWORD" -e "INPUT_PROXY_PASSPHRASE" -e "INPUT_PROXY_TIMEOUT" -e "INPUT_PROXY_KEY" -e "INPUT_PROXY_KEY_PATH" -e "INPUT_PROXY_FINGERPRINT" -e "INPUT_PROXY_CIPHER" -e "INPUT_PROXY_USE_INSECURE_CIPHER" -e "INPUT_SCRIPT_STOP" -e "INPUT_ENVS" -e "INPUT_ENVS_FORMAT" -e "INPUT_DEBUG" -e "HOME" -e "GITHUB_JOB" -e "GITHUB_REF" -e "GITHUB_SHA" -e "GITHUB_REPOSITORY" -e "GITHUB_REPOSITORY_OWNER" -e "GITHUB_REPOSITORY_OWNER_ID" -e "GITHUB_RUN_ID" -e "GITHUB_RUN_NUMBER" -e "GITHUB_RETENTION_DAYS" -e "GITHUB_RUN_ATTEMPT" -e "GITHUB_REPOSITORY_ID" -e "GITHUB_ACTOR_ID" -e "GITHUB_ACTOR" -e "GITHUB_TRIGGERING_ACTOR" -e "GITHUB_WORKFLOW" -e "GITHUB_HEAD_REF" -e "GITHUB_BASE_REF" -e "GITHUB_EVENT_NAME" -e "GITHUB_SERVER_URL" -e "GITHUB_API_URL" -e "GITHUB_GRAPHQL_URL" -e "GITHUB_REF_NAME" -e "GITHUB_REF_PROTECTED" -e "GITHUB_REF_TYPE" -e "GITHUB_WORKFLOW_REF" -e "GITHUB_WORKFLOW_SHA" -e "GITHUB_WORKSPACE" -e "GITHUB_ACTION" -e "GITHUB_EVENT_PATH" -e "GITHUB_ACTION_REPOSITORY" -e "GITHUB_ACTION_REF" -e "GITHUB_PATH" -e "GITHUB_ENV" -e "GITHUB_STEP_SUMMARY" -e "GITHUB_STATE" -e "GITHUB_OUTPUT" -e "RUNNER_OS" -e "RUNNER_ARCH" -e "RUNNER_NAME" -e "RUNNER_ENVIRONMENT" -e "RUNNER_TOOL_CACHE" -e "RUNNER_TEMP" -e "RUNNER_WORKSPACE" -e "ACTIONS_RUNTIME_URL" -e "ACTIONS_RUNTIME_TOKEN" -e "ACTIONS_CACHE_URL" -e GITHUB_ACTIONS=true -e CI=true -v "/var/run/docker.sock":"/var/run/docker.sock" -v "/home/runner/work/_temp/_github_home":"/github/home" -v "/home/runner/work/_temp/_github_workflow":"/github/workflow" -v "/home/runner/work/_temp/_runner_file_commands":"/github/file_commands" -v "/home/runner/work/be-java-cafe-max/be-java-cafe-max":"/github/workspace" 2a6c8c:84478a17774[9](https://github.com/yonghwankim-dev/be-java-cafe-max/actions/runs/5430382845/jobs/9877274493#step:9:9)40f4b52138cfde0688e0
======CMD======
docker pull ***/be-java-cafe-max:latest
docker stop $(docker ps -a -q)
docker run -d --log-driver=syslog -p 8080:8080 ***/be-java-cafe-max:latest
docker rm $(docker ps --filter 'status=exited' -a -q)
docker image prune -a -f
======END======
err: Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/images/create?fromImage=***%2Fbe-java-cafe-max&tag=latest": dial unix /var/run/docker.sock: connect: permission denied
err: Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/containers/json?all=1": dial unix /var/run/docker.sock: connect: permission denied
err: "docker stop" requires at least 1 argument.
err: See 'docker stop --help'.
err: Usage: docker stop [OPTIONS] CONTAINER [CONTAINER...]
err: Stop one or more running containers
err: docker: Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/containers/create": dial unix /var/run/docker.sock: connect: permission denied.
err: See 'docker run --help'.
err: Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/containers/json?all=1&filters=%7B%22status%22%3A%7B%22exited%22%3Atrue%7D%7D": dial unix /var/run/docker.sock: connect: permission denied
err: "docker rm" requires at least 1 argument.
err: See 'docker rm --help'.
err: Usage: docker rm [OPTIONS] CONTAINER [CONTAINER...]
err: Remove one or more containers
err: Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/images/prune?filters=%7B%22dangling%22%3A%7B%22false%22%3Atrue%7D%7D": dial unix /var/run/docker.sock: connect: permission denied
2023/07/01 [12](https://github.com/yonghwankim-dev/be-java-cafe-max/actions/runs/5430382845/jobs/9877274493#step:9:12):49:12 Process exited with status 1
workflow.yml 파일의 내용중 도커 작업에서 SSH 접속한 EC2에서 docker 명령어를 호출하기 전에 /var/run/docker.sock의 실행권한을 666으로 변경합니다.
sudo chmod 666 /var/run/docker.sock
# 배포
- name: Deploy
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.HOST }} # EC2 인스턴스 퍼블릭 DNS
username: ec2-user
key: ${{ secrets.PRIVATE_KEY }} # pem 키
# 도커 작업
script: |
sudo chmod 666 /var/run/docker.sock
docker pull ${{ secrets.DOCKER_USERNAME }}/be-java-cafe-max:latest
docker stop $(docker ps -a -q)
docker run -d --log-driver=syslog -p 8080:8080 ${{ secrets.DOCKER_USERNAME }}/be-java-cafe-max:latest
docker rm $(docker ps --filter 'status=exited' -a -q)
docker image prune -a -f