AWS, Lightsail Container에 라라벨 올리기

2021. 1. 15. 17:24개발/AWS

2020년 11월 AWS 블로그에는 Lightsail에 컨테이너 기반 워크로드를 배포할 수 있는 기능이 추가되었다고 글이 올라왔습니다.

- Amazon Lightsail Container 출시 – 클라우드에서 컨테이너를 손쉽게 실행하는 방법

 

그래서 이 기능을 통해 라라벨을 올려보기로 했습니다.

 

새로운 라라벨 프로젝트 생성

Installation Via Composer 링크에 나와있는데로 실행하면 손쉽게 라라벨 실행이 가능합니다.

진짜 편해졌습니다.

composer create-project laravel/laravel idiotlabs-playten

cd idiotlabs-playten

php artisan serve

 

artisan serve 실행 후 localhost:8000 에 접속하면 라라벨 화면을 확인할 수 있습니다.

 

Dockerfile 생성

도커 생성을 위한 Dockerfile을 생성합니다.

FROM php:7.4-fpm

# Install system dependencies
RUN apt-get update && apt-get install -y \
    git \
    curl \
    libpng-dev \
    libonig-dev \
    libxml2-dev \
    libzip-dev \
    zip \
    unzip

RUN docker-php-ext-install pdo_mysql mbstring zip exif pcntl

RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer

WORKDIR /app
COPY . /app

RUN composer install

EXPOSE 8000

CMD php artisan serve --host=0.0.0.0 --port=8000

 

파일을 생성한 뒤에 빌드를 하고 실행을 해서 확인을 해봅니다.

실행 후 브라우저에서 라라벨 페이지가 뜨면 잘 된겁니다.

docker build -t idiotlabs-playten .

docker run -it --rm -p 8000:8000 idiotlabs-playten

 

Docker Hub에 Push

lightsail에 사용하기 위해 Docker Hub에 Push합니다.

docker tag idiotlabs-playten cobnut/idiotlabs-playten

docker login

docker push cobnut/idiotlabs-playten

 

Lightsail에 컨테이너 생성

 

Lightsail에 있는 컨테이너 서비스 생성을 이용합니다.

서비스 생성이 되면 배포를 준비할 수 있습니다.

 

 

'첫 번째 배포 생성'을 클릭 한 뒤에

컨테이너 이름, 이미지, 포트 그리고 퍼블릭 엔드포인트를 설정합니다.

 

 

생성을 한 뒤에 상단에 있는 퍼블릭 포인트로 접속하면 라라벨 기본 화면이 뜨는걸 확인할 수 있습니다.