앞의 과정의 반복이지만 이제는 local 용이 아닌 AWS에서 serving 할 Image를 만들고 AWS에 upload 해서 실행 시켜 보았다

 

이번에는 local에서 실행 할 것은 아니라 home 폴더에서 작업을 하였다

 

앞 부분은 이전회의 반복이다

 

1. github 에서 clone및 복구

 

1) ldw@ldw-max:~/laravel$ git clone https://lamb0693:*****************@github.com/lamb0693/bukdu10.git

 

2) 앞에서 만들어 놓은 Dockerfile을 복사해옴

ldw@ldw-bmax:~/laravel$ cd bukdu10
ldw@ldw-bmax:~/laravel/bukdu10$ cp /var/www/html/bukdu10/Dockerfile ./

 

3) 미리 복사해 놓은 .env 파일 복사

ldw@ldw-bmax:~/laravel/bukdu10$ cp /home/ldw/다운로드/a.env ./.env

 

4) VSCode로 .env 파일 수정 

     AWS EC2 에 있는 DB에 접속할 수 있게 환경 수정

     서버 이름 수정등

 

APP_NAME=bukdu10
APP_ENV=production
APP_KEY=base64:CnE0DZ9xssyJ0f/2ufbq1cKexJPMDzZC8Zk+iuNZdHo=
APP_DEBUG=true

LOG_CHANNEL=stack
LOG_DEPRECATIONS_CHANNEL=null
LOG_LEVEL=debug

DB_CONNECTION=mysql
DB_HOST=w*******.com
DB_PORT=3306
DB_DATABASE=bukdu10
DB_USERNAME=***
DB_PASSWORD=******

BROADCAST_DRIVER=log
CACHE_DRIVER=file
FILESYSTEM_DISK=local
QUEUE_CONNECTION=sync
SESSION_DRIVER=file
SESSION_LIFETIME=120

MEMCACHED_HOST=127.0.0.1

REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379

MAIL_MAILER=smtp
MAIL_HOST=mailpit
MAIL_PORT=1025
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
MAIL_FROM_ADDRESS="hello@example.com"
MAIL_FROM_NAME="${APP_NAME}"

AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
AWS_DEFAULT_REGION=us-east-1
AWS_BUCKET=
AWS_USE_PATH_STYLE_ENDPOINT=false

PUSHER_APP_ID=
PUSHER_APP_KEY=
PUSHER_APP_SECRET=
PUSHER_HOST=
PUSHER_PORT=443
PUSHER_SCHEME=https
PUSHER_APP_CLUSTER=mt1

VITE_APP_NAME="${APP_NAME}"
VITE_PUSHER_APP_KEY="${PUSHER_APP_KEY}"
VITE_PUSHER_HOST="${PUSHER_HOST}"
VITE_PUSHER_PORT="${PUSHER_PORT}"
VITE_PUSHER_SCHEME="${PUSHER_SCHEME}"
VITE_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"

 

5) ldw@ldw-bmax:~/laravel/bukdu10$ composer install

 

6) ldw@ldw-bmax:~/laravel/bukdu10$ npm install

 

7) ldw@ldw-bmax:~/laravel/bukdu10$ npm run build

 

 

2. Image를  /home/ldw/laravel/bukdu10 폴더에서  빌드하고 docker hub 로 upload 함

 

1)  ldw@ldw-bmax:~/laravel/bukdu10$ docker build -t ldw365/ldwdockerimage365:bukdu10 .

 

9. ldw@ldw-bmax:~/laravel/bukdu10$ docker push ldw365/ldwdockerimage365:bukdu10
The push refers to repository [docker.io/ldw365/ldwdockerimage365]

 

 

3. AWS에서 작업

이제  terminal 에서 AWS 로 접속 image를 다운 로드 받고 실행 해 보았다

 

1)  AWS EC2 의 mysql server에 shema  생성하고 이전 server에서 backup 받아 놓은 schema 를 복원함

 

2)  AWS에는 미리 docker를 설치해 놓았다

 

3)  AWS에는 기존 Nginx로 reverse proxy를 설정해 주었다

https://king.w****.com  -> http://localhost:8020

 

ubuntu@ip-172-31-7-173:/etc/nginx/sites-available$ cat wxxxx.com
server {
    server_name wxxxx.com ;
    l..............................
}


server {
    server_name king.w****.com;
    location / {
        proxy_pass http://127.0.0.1:8020;

        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;  # Set the X-Forwarded-Proto header
        proxy_redirect off;
    }
    listen [::]:443 ssl; # managed by Certbot
    listen 443 ssl; # managed by Certbot
    ssl_certificate /etc/letsencrypt/live/king.w****.com/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/king.w****.com/privkey.pem; # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}


server {
    if ($host = w****.com) {
        return 301 https://$host$request_uri;
    } # managed by Certbot
    listen 80;
    listen [::]:80;

    server_name w****.com;
        return 404; # managed by Certbot
}

 

 

4)  docker hub에서 Image pull

 

ubuntu@ip-172-31-7-173:~$ docker ps -a
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES


ubuntu@ip-172-31-7-173:~$ docker images
REPOSITORY   TAG       IMAGE ID   CREATED   SIZE


ubuntu@ip-172-31-7-173:~$ docker pull ldw365/ldwdockerimage365:bukdu10
bukdu10: Pulling from ldw365/ldwdockerimage365
.......................................
Status: Downloaded newer image for ldw365/ldwdockerimage365:bukdu10
docker.io/ldw365/ldwdockerimage365:bukdu10


ubuntu@ip-172-31-7-173:~$ docker images
REPOSITORY                 TAG       IMAGE ID       CREATED         SIZE
ldw365/ldwdockerimage365   bukdu10   e9ec64a014a4   7 minutes ago   822MB

 

5)  8020번 포트로 실행 시켜 주었다


ubuntu@ip-172-31-7-173:~$ docker run -p 8020:80 ldw365/ldwdockerimage365:bukdu10 &


[1] 53885
ubuntu@ip-172-31-7-173:~$ Starting services...
Ready.
==> /var/log/nginx/access.log <==

==> /var/log/nginx/error.log <==

 

4. 결과 확인 - 오류 발생

 

1) 접속하니 접속은 되지만 링크들이 css, route, js 등이 http로 설정이 되어있어 https 접속에서 문제를 일으킨다

 

문제는 다음에 해결해 보겠다

 

 

2) https://king.w*****.com으로 접속 - 접속은 된다

 

3) 링크 클릭 웹페이지 이동하면 https 와 http Mixed Content를 문제로 잘 작동되지 않는다

다음 회에서 해결 예정이다

 

 

+ Recent posts