글작성일: 2022/03/17
백엔드 api 생성을 위해, 먼저 MySQL을 설치후 아래 사항을 진행합니다.
요구 사항
- 미리 설치된 MySQL 서버
- 도커
- NPM / Yarn (Yarn 권장) (Node 14가 권장되지만 로컬 개발을 위해 Yarn을 사용하는 경우 16이 작동함)
- 좋아하는 코드 편집기. (저는 VSCode를 사용하겠습니다)
strapi 프로젝트 생성
npx로 프로젝트를 생성합니다.
npx create-strapi-app@latest tera-blog-strapi
아래와 같이 Custom 선택합니다.
? Choose your installation type
Quickstart (recommended)
❯ Custom (manual settings)
mysql 선택
미리 설치한 DB 접속정보 입력
디렉토리로 이동하여 에디터를 엽니다.
cd tera-blog-strapi && code .
도커로 변환
Dockerfile 생성
FROM node:16
# Installing libvips-dev for sharp compatability
RUN apt-get update -y && \
apt-get upgrade -y libvips libvips-dev
ARG NODE_ENV=development
ENV NODE_ENV=${NODE_ENV}
WORKDIR /opt/
COPY ./package.json ./
COPY ./yarn.lock ./
ENV PATH /opt/node_modules/.bin:$PATH
RUN yarn config set network-timeout 600000 -g
RUN yarn install
WORKDIR /opt/app
COPY ./ .
RUN yarn build
EXPOSE 1337
CMD ["yarn", "develop"]
.dockerignore 파일 생성
.tmp/
.cache/
.git/
build/
node_modules/
data/
도커 이미지 생성 (도커 허브 아이디 이용)
docker build -t {도커허브ID}/tera-blog-strapi:latest .
도커 이미지 확인
도커 컴포즈 파일로 컨테이너 생성
docker-compose.yml 생성
version: "3"
services:
strapi:
container_name: tera-blog-strapi
build: .
image: {도커허브ID}/tera-blog-strapi:latest
restart: unless-stopped
env_file: .env
environment:
DATABASE_CLIENT: ${DATABASE_CLIENT}
DATABASE_HOST: ${DATABASE_HOST}
DATABASE_NAME: ${DATABASE_NAME}
DATABASE_USERNAME: ${DATABASE_USERNAME}
DATABASE_PORT: ${DATABASE_PORT}
JWT_SECRET: ${JWT_SECRET}
DATABASE_PASSWORD: ${DATABASE_PASSWORD}
NODE_ENV: ${NODE_ENV}
volumes:
- ./config:/opt/app/config
- ./src:/opt/app/src
- ./package.json:/opt/package.json
- ./yarn.lock:/opt/yarn.lock
- ./.env:/opt/app/.env
ports:
- "3337:1337"
.env 파일 생성
DATABASE_CLIENT=mysql
DATABASE_HOST=IP주소
DATABASE_PORT=3306
DATABASE_NAME=DB이름
DATABASE_USERNAME=사용자이름
DATABASE_PASSWORD=비번
NODE_ENV=development
도커 컨테이너 실행
docker-compose up --build
strapi 접속
http://localhost:3337/admin
strapi 버전 확인
DB확인
팁) 도커 허브로 push 하면 로컬에 이미지가 없어도 설치 가능
'IT일반 > Strapi' 카테고리의 다른 글
strapi 이미지를 cloudinary로 무료로 올리기 (0) | 2022.04.08 |
---|---|
strapi mysql을 heroku 에 배포해보기 (0) | 2022.03.31 |
오라클 클라우드에 strapi 배포 (0) | 2022.03.20 |
댓글