-
Notifications
You must be signed in to change notification settings - Fork 0
76 lines (70 loc) · 3.03 KB
/
docker-image.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
name: Docker Image CI
on:
push:
branches: ["main" ]
pull_request:
branches: ["main"]
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Docker Checkout
uses: actions/checkout@v3
- name: Docker Login
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Build and Push
env:
POSTGRES_PASSWORD: ${{ secrets.POSTGRES_PASSWORD }}
POSTGRES_USER: ${{ secrets.POSTGRES_USER }}
POSTGRES_DB: ${{ secrets.POSTGRES_DB }}
NEXT_PORT: ${{ secrets.NEXT_PORT }}
DB_NAME: ${{ secrets.DB_NAME }}
HOME: ${{ secrets.HOME }}
SERVER_PORT: ${{ secrets.SERVER_PORT }}
AUTH0_SECRET: ${{ secrets.AUTH0_SECRET }}
AUTH0_BASE_URL: ${{ secrets.AUTH0_BASE_URL }}
AUTH0_ISSUER_BASE_URL: ${{ secrets.AUTH0_ISSUER_BASE_URL }}
AUTH0_CLIENT_ID: ${{ secrets.AUTH0_CLIENT_ID }}
AUTH0_CLIENT_SECRET: ${{ secrets.AUTH0_CLIENT_SECRET }}
LOCAL_DATABASE_URL: ${{ secrets.LOCAL_DATABASE_URL }}
REMOTE_DATABASE_URL: ${{ secrets.REMOTE_DATABASE_URL }}
run: |
docker compose build
docker login -u ${{ secrets.DOCKER_USERNAME }} -p ${{ secrets.DOCKER_PASSWORD }}
docker compose push
- name: copy file via ssh password
uses: appleboy/[email protected]
with:
host: ${{ secrets.AWS_HOST }}
username: ${{ secrets.AWS_USERNAME }}
key: ${{ secrets.AWS_KEYPAIR }}
source: "docker-compose.yaml"
target: "/home/azureuser/"
- name: SSH to AWS Instance and Pull Image
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.AWS_HOST }}
username: ${{ secrets.AWS_USERNAME }}
key: ${{ secrets.AWS_KEYPAIR }}
script: |
touch .env
echo "POSTGRES_PASSWORD=${{ secrets.POSTGRES_PASSWORD }}" > .env
echo "POSTGRES_USER=${{ secrets.POSTGRES_USER }}" >> .env
echo "POSTGRES_DB=${{ secrets.POSTGRES_DB }}" >> .env
echo "NEXT_PORT=${{ secrets.NEXT_PORT }}" >> .env
echo "DB_NAME=${{ secrets.DB_NAME }}" >> .env
echo "HOME=${{ secrets.HOME }}" >> .env
echo "SERVER_PORT=${{ secrets.SERVER_PORT }}" >> .env
echo "AUTH0_SECRET=${{ secrets.AUTH0_SECRET }}" >> .env
echo "AUTH0_BASE_URL=${{ secrets.AUTH0_BASE_URL }}" >> .env
echo "AUTH0_ISSUER_BASE_URL=${{ secrets.AUTH0_ISSUER_BASE_URL }}" >> .env
echo "AUTH0_CLIENT_ID=${{ secrets.AUTH0_CLIENT_ID }}" >> .env
echo "AUTH0_CLIENT_SECRET=${{ secrets.AUTH0_CLIENT_SECRET }}" >> .env
echo "LOCAL_DATABASE_URL=${{ secrets.LOCAL_DATABASE_URL }}" >> .env
echo "REMOTE_DATABASE_URL=${{ secrets.REMOTE_DATABASE_URL }}" >> .env
sudo docker compose down --rmi all --volumes || true
sudo docker compose pull
sudo docker compose up -d --no-build