개발/AWS
AWS, Lightsail Container에 라라벨 올리기
Seobs
2021. 1. 15. 17:24
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에 있는 컨테이너 서비스 생성을 이용합니다.
서비스 생성이 되면 배포를 준비할 수 있습니다.
'첫 번째 배포 생성'을 클릭 한 뒤에
컨테이너 이름, 이미지, 포트 그리고 퍼블릭 엔드포인트를 설정합니다.
생성을 한 뒤에 상단에 있는 퍼블릭 포인트로 접속하면 라라벨 기본 화면이 뜨는걸 확인할 수 있습니다.