docker run -d \
--name watchtower \
-v /var/run/docker.sock:/var/run/docker.sock \
-e WATCHTOWER_POLL_INTERVAL=300 \
-e DOCKER_USERNAME=tenxtube \
-e DOCKER_PASSWORD=72quf6!!22 \
containrrr/watchtower
리액트 프로젝트에 대한 레퍼지토리를 만듭니다.
Github actions으로 develop 브랜치에 push가 되었을 때 Github actions에 빌드 해서 docker hub에 올라갈 수 있도록 세팅합니다.
일단 Github 시크릿에 DOCKER_HUB_USERNAME/DOCKER_HUB_PASSWORD를 등록해서 사용합니다.
빌드 테스트
.github\workflows\react_build.yml
name: React Build Workflow
on:
push:
branches:
- develop
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Check out code
uses: actions/checkout@v2
- name: Set up Node.js
uses: actions/setup-node@v2
with:
node-version: '14' # You can specify your Node.js version here
- name: Install dependencies
run: npm install
- name: Build
run: npm run build
name: React Build and Docker Push Workflow
on:
push:
branches:
- develop
jobs:
build_and_push:
runs-on: ubuntu-latest
steps:
- name: Check out code
uses: actions/checkout@v2
- name: Set up Node.js
uses: actions/setup-node@v2
with:
node-version: '16' # You can specify your Node.js version here
- name: Install dependencies
run: npm install
- name: Build React Project
run: npm run build
- name: Login to Docker Hub
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKER_HUB_USERNAME }}
password: ${{ secrets.DOCKER_HUB_PASSWORD }}
- name: Build and push Docker image
run: |
docker build -t tenxtube/react-test:develop .
docker push tenxtube/react-test:develop
# React Dockerfile
FROM node:16
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 3000
CMD ["npm", "start"]
docker run -p 3000:3000 tenxtube:develop -d
nest new nest-test
import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';
async function bootstrap() {
const app = await NestFactory.create(AppModule);
await app.listen(3001, '0.0.0.0');
}
bootstrap();