# 베이스 이미지 선택
FROM node:14-alpine
# 앱 디렉토리 생성 및 작업 디렉토리로 설정
WORKDIR /usr/src/app
# 앱 종속성 설치
COPY package*.json ./
RUN npm install
# 소스 코드 복사
COPY . .
# 앱 빌드
RUN npm run build
# 컨테이너 실행 시 실행할 명령어
CMD ["npm", "run", "start:prod"]
Dockerfile로 이미지 빌드
# (.)은 Dockerfile이 해당 디렉토리에 있다는 것을 의미
docker build -t app-name .
컨테이너 실행
docker run -p 3000:3000 app-name
vscode extension에서 dev containers 설치
vscode 좌측에 아래와 똑같이 생긴 아이콘 클릭 후 DEV CONTAINERS에서 생성한 nest 프로젝트 선택
docker run -d -p 6666:3306 -e MYSQL_ROOT_PASSWORD=secret-pw --name container-name mysql
# -d : 백그라운드 모드
# -p 6666:3306 : 포트 설정 [6666포트를 해당 컨테이너 3306포트와 연결]
# -e mysql_root_password=pw : root 계정 패스워드 설정
# --name : 컨테이너 이름
MySQL 컨테이너 접속
docker exec -it container-name mysql -u root -p
# -it : 컨테이너 내부에서 대화형으로 작업 가능
# mysql -u root -p : mysql에서 root 계정으로 접속할 때 사용
// mysql 5.7 저장소에서 다운
[jinhyeok@localhost ~]$ sudo yum -y install http://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
// mysql server 다운
[jinhyeok@localhost ~]$ sudo yum -y install mysql-community-server
설치 후 나오는 화면
[jinhyeok@localhost home]$ ifconfig
sudo vi /etc/httpd/conf/httpd.conf
// ESC -> : -> set number 치고 엔터
===================== httpd.conf =====================
// 95번째 라인 주석 해제 후 이전 사진에 있는 할당된 ip 입력
95Line -> ServerName 192.168.10.129
119Line -> DocumentRoot "웹 서버로 사용할 디렉터리"
ex -> DocumentRoot "/home/www/lab"
124Line -> <Directory "웹 서버로 사용할 이전 디렉터리?">
ex -> <Directory "/home/www">
131Line -> <Directory "웹 서버로 사용할 디렉터리">
ex -> <Directory "/home/www/lab">
164Line -> DirectoryIndex index.php index.html
// ESC -> : -> wq 치고 엔터
//아래 httpd 재시작 명령어는 해당 디렉터리가 없거나 디렉터리 안에 파일이 없으면 에러남
sudo systemctl restart httpd
sudo systemctl restart php-fpm
여기서 403이 뜨는 경우에는 selinux 체크를 해볼 것
Composer 설치
[jinhyeok@localhost ~]$ curl -sS https://getcomposer.org/installer | php
[jinhyeok@localhost ~]$ sudo mv composer.phar /usr/local/bin/composer
[jinhyeok@localhost ~]$ composer -v
// composer -v가 안될때
[jinhyeok@localhost ~]$ sudo PATH=$PATH:/usr/local/bin/
[jinhyeok@localhost ~]$ cd /home/www/
[jinhyeok@localhost www]$ sudo rm -rf ./lab
// 라라벨 인스톨러 다운로드
[jinhyeok@localhost www]$ sudo composer global require laravel/installer
[jinhyeok@localhost www]$ composer create-project --prefer-dist laravel/laravel lab
// 권한 확인
[jinhyeok@localhost www]$ ll
// 저같은 경우는 jinhyeok이라는 계정으로 설치를 했기 때문에 그룹권한을 apache로 바꿔주겠습니다
[jinhyeok@localhost www]$ sudo chown -R apache:apache ./lab
// storage와 bootstrap/cache디렉터리의 읽기쓰기 권한도 바꿔주겠습니다.
[jinhyeok@localhost www]$ sudo chmod -R 775 ./lab/storage/
[jinhyeok@localhost www]$ sudo chmod -R 775 ./lab/bootstrap/cache/
// httpd.conf에 가서 디렉토리 경로를 바꿔줍니다
// 프레임워크를 받은 디렉토리 안으로 들어가면 public 폴더가 있습니다.
[jinhyeok@localhost www]$ sudo vi /etc/httpd/conf/ httpd.conf
================== httpd.conf ==================
// 라인 넘버를 보기 위해 치는 명령어?
ESC -> : -> set number -> 엔터
119Line -> DocumnetRoot "디렉토리 경로/프로젝트이름/public"
ex -> DocumentRoot "/home/www/lab/public"
131Line -> <Directory "/디렉토리 경로/프로젝트이름/public">
ex -> <Directory "/home/www/lab/public">