chore: Remove unnecessary comments from Dockerfile.
This commit is contained in:
parent
3684e64d7f
commit
303dd1390f
|
|
@ -1,50 +0,0 @@
|
||||||
name: Deploy Next.js with Docker
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
branches:
|
|
||||||
- main
|
|
||||||
workflow_dispatch:
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
build-and-deploy:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Checkout code
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
|
|
||||||
- name: Set up Docker Buildx
|
|
||||||
uses: docker/setup-buildx-action@v3
|
|
||||||
|
|
||||||
- name: Login to Container Registry
|
|
||||||
uses: docker/login-action@v3
|
|
||||||
with:
|
|
||||||
registry: ${{ secrets.REGISTRY_URL }}
|
|
||||||
username: ${{ secrets.REGISTRY_USERNAME }}
|
|
||||||
password: ${{ secrets.REGISTRY_PASSWORD }}
|
|
||||||
|
|
||||||
- name: Build and push Docker image
|
|
||||||
uses: docker/build-push-action@v5
|
|
||||||
with:
|
|
||||||
context: .
|
|
||||||
file: ./Dockerfile.production
|
|
||||||
push: true
|
|
||||||
tags: |
|
|
||||||
${{ secrets.REGISTRY_URL }}/portal-dias-rota:latest
|
|
||||||
${{ secrets.REGISTRY_URL }}/portal-dias-rota:${{ github.sha }}
|
|
||||||
cache-from: type=registry,ref=${{ secrets.REGISTRY_URL }}/portal-dias-rota:buildcache
|
|
||||||
cache-to: type=registry,ref=${{ secrets.REGISTRY_URL }}/portal-dias-rota:buildcache,mode=max
|
|
||||||
|
|
||||||
- name: Deploy to server
|
|
||||||
uses: appleboy/ssh-action@v1.0.3
|
|
||||||
with:
|
|
||||||
host: ${{ secrets.DEPLOY_HOST }}
|
|
||||||
username: ${{ secrets.DEPLOY_USER }}
|
|
||||||
key: ${{ secrets.DEPLOY_SSH_KEY }}
|
|
||||||
port: ${{ secrets.DEPLOY_PORT || 22 }}
|
|
||||||
script: |
|
|
||||||
cd ${{ secrets.DEPLOY_PATH }}
|
|
||||||
docker pull ${{ secrets.REGISTRY_URL }}/portal-dias-rota:latest
|
|
||||||
docker-compose down
|
|
||||||
docker-compose up -d
|
|
||||||
docker image prune -f
|
|
||||||
|
|
@ -1,58 +0,0 @@
|
||||||
name: Deploy Next.js Application
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
branches:
|
|
||||||
- main
|
|
||||||
workflow_dispatch:
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
build-and-deploy:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Checkout code
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
|
|
||||||
- name: Setup Node.js
|
|
||||||
uses: actions/setup-node@v4
|
|
||||||
with:
|
|
||||||
node-version: '20'
|
|
||||||
cache: 'npm'
|
|
||||||
|
|
||||||
- name: Install dependencies
|
|
||||||
run: npm ci
|
|
||||||
|
|
||||||
- name: Build Next.js application
|
|
||||||
run: npm run build
|
|
||||||
env:
|
|
||||||
ORACLE_USER: ${{ secrets.ORACLE_USER }}
|
|
||||||
ORACLE_PASSWORD: ${{ secrets.ORACLE_PASSWORD }}
|
|
||||||
ORACLE_CONNECTION_STRING: ${{ secrets.ORACLE_CONNECTION_STRING }}
|
|
||||||
ORACLE_POOL_MIN: ${{ secrets.ORACLE_POOL_MIN }}
|
|
||||||
ORACLE_POOL_MAX: ${{ secrets.ORACLE_POOL_MAX }}
|
|
||||||
ORACLE_POOL_INCREMENT: ${{ secrets.ORACLE_POOL_INCREMENT }}
|
|
||||||
ORACLE_QUEUE_TIMEOUT: ${{ secrets.ORACLE_QUEUE_TIMEOUT }}
|
|
||||||
ORACLE_INACTIVITY_TIMEOUT: ${{ secrets.ORACLE_INACTIVITY_TIMEOUT }}
|
|
||||||
|
|
||||||
- name: Deploy to production server
|
|
||||||
uses: appleboy/scp-action@v0.1.7
|
|
||||||
with:
|
|
||||||
host: ${{ secrets.DEPLOY_HOST }}
|
|
||||||
username: ${{ secrets.DEPLOY_USER }}
|
|
||||||
key: ${{ secrets.DEPLOY_SSH_KEY }}
|
|
||||||
port: ${{ secrets.DEPLOY_PORT || 22 }}
|
|
||||||
source: ".next,package.json,package-lock.json,public,src,.env.production"
|
|
||||||
target: ${{ secrets.DEPLOY_PATH }}
|
|
||||||
strip_components: 0
|
|
||||||
|
|
||||||
- name: Restart application
|
|
||||||
uses: appleboy/ssh-action@v1.0.3
|
|
||||||
with:
|
|
||||||
host: ${{ secrets.DEPLOY_HOST }}
|
|
||||||
username: ${{ secrets.DEPLOY_USER }}
|
|
||||||
key: ${{ secrets.DEPLOY_SSH_KEY }}
|
|
||||||
port: ${{ secrets.DEPLOY_PORT || 22 }}
|
|
||||||
script: |
|
|
||||||
cd ${{ secrets.DEPLOY_PATH }}
|
|
||||||
npm ci --production
|
|
||||||
pm2 restart portal-dias-rota || pm2 start npm --name "portal-dias-rota" -- start
|
|
||||||
|
|
@ -1,15 +0,0 @@
|
||||||
name: Renovate Manual
|
|
||||||
on:
|
|
||||||
workflow_dispatch:
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
renovate:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: Self-hosted Renovate
|
|
||||||
uses: docker://renovate/renovate:latest
|
|
||||||
env:
|
|
||||||
RENOVATE_PLATFORM: 'gitea'
|
|
||||||
RENOVATE_ENDPOINT: 'http://git.jurunense.com/api/v1'
|
|
||||||
RENOVATE_TOKEN: ${{ secrets.RENOVATE_TOKEN }}
|
|
||||||
RENOVATE_AUTODISCOVER: 'true'
|
|
||||||
19
Dockerfile
19
Dockerfile
|
|
@ -1,12 +1,9 @@
|
||||||
# Etapa 1: Build
|
|
||||||
FROM node:20-alpine AS builder
|
FROM node:20-alpine AS builder
|
||||||
|
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
|
|
||||||
# Instalar dependências necessárias para Oracle Instant Client
|
|
||||||
RUN apk add --no-cache libaio libnsl libc6-compat curl unzip
|
RUN apk add --no-cache libaio libnsl libc6-compat curl unzip
|
||||||
|
|
||||||
# Baixar e instalar Oracle Instant Client
|
|
||||||
RUN mkdir -p /opt/oracle && \
|
RUN mkdir -p /opt/oracle && \
|
||||||
cd /opt/oracle && \
|
cd /opt/oracle && \
|
||||||
curl -o instantclient-basiclite.zip https://download.oracle.com/otn_software/linux/instantclient/2340000/instantclient-basiclite-linux.x64-23.4.0.24.05.zip && \
|
curl -o instantclient-basiclite.zip https://download.oracle.com/otn_software/linux/instantclient/2340000/instantclient-basiclite-linux.x64-23.4.0.24.05.zip && \
|
||||||
|
|
@ -17,59 +14,43 @@ RUN mkdir -p /opt/oracle && \
|
||||||
echo /opt/oracle/instantclient_23_4 > /etc/ld.so.conf.d/oracle-instantclient.conf && \
|
echo /opt/oracle/instantclient_23_4 > /etc/ld.so.conf.d/oracle-instantclient.conf && \
|
||||||
ldconfig
|
ldconfig
|
||||||
|
|
||||||
# Configurar variáveis de ambiente do Oracle
|
|
||||||
ENV LD_LIBRARY_PATH=/opt/oracle/instantclient_23_4:$LD_LIBRARY_PATH
|
ENV LD_LIBRARY_PATH=/opt/oracle/instantclient_23_4:$LD_LIBRARY_PATH
|
||||||
|
|
||||||
# Copiar arquivos de dependências
|
|
||||||
COPY package*.json ./
|
COPY package*.json ./
|
||||||
|
|
||||||
# Instalar dependências
|
|
||||||
RUN npm ci
|
RUN npm ci
|
||||||
|
|
||||||
# Copiar código fonte
|
|
||||||
COPY . .
|
COPY . .
|
||||||
|
|
||||||
# Build da aplicação Next.js
|
|
||||||
RUN npm run build
|
RUN npm run build
|
||||||
|
|
||||||
# Etapa 2: Runtime
|
|
||||||
FROM node:20-alpine AS runner
|
FROM node:20-alpine AS runner
|
||||||
|
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
|
|
||||||
# Instalar dependências necessárias para Oracle Instant Client
|
|
||||||
RUN apk add --no-cache libaio libnsl libc6-compat
|
RUN apk add --no-cache libaio libnsl libc6-compat
|
||||||
|
|
||||||
# Copiar Oracle Instant Client do builder
|
|
||||||
COPY --from=builder /opt/oracle/instantclient_23_4 /opt/oracle/instantclient_23_4
|
COPY --from=builder /opt/oracle/instantclient_23_4 /opt/oracle/instantclient_23_4
|
||||||
|
|
||||||
# Configurar LD_LIBRARY_PATH
|
|
||||||
RUN echo /opt/oracle/instantclient_23_4 > /etc/ld.so.conf.d/oracle-instantclient.conf && \
|
RUN echo /opt/oracle/instantclient_23_4 > /etc/ld.so.conf.d/oracle-instantclient.conf && \
|
||||||
ldconfig
|
ldconfig
|
||||||
|
|
||||||
ENV LD_LIBRARY_PATH=/opt/oracle/instantclient_23_4:$LD_LIBRARY_PATH
|
ENV LD_LIBRARY_PATH=/opt/oracle/instantclient_23_4:$LD_LIBRARY_PATH
|
||||||
|
|
||||||
# Criar usuário não-root
|
|
||||||
RUN addgroup --system --gid 1001 nodejs
|
RUN addgroup --system --gid 1001 nodejs
|
||||||
RUN adduser --system --uid 1001 nextjs
|
RUN adduser --system --uid 1001 nextjs
|
||||||
|
|
||||||
# Copiar arquivos necessários do builder
|
|
||||||
COPY --from=builder /app/public ./public
|
COPY --from=builder /app/public ./public
|
||||||
COPY --from=builder /app/.next/standalone ./
|
COPY --from=builder /app/.next/standalone ./
|
||||||
COPY --from=builder /app/.next/static ./.next/static
|
COPY --from=builder /app/.next/static ./.next/static
|
||||||
|
|
||||||
# Definir permissões
|
|
||||||
RUN chown -R nextjs:nodejs /app
|
RUN chown -R nextjs:nodejs /app
|
||||||
|
|
||||||
# Mudar para usuário não-root
|
|
||||||
USER nextjs
|
USER nextjs
|
||||||
|
|
||||||
# Expor porta
|
|
||||||
EXPOSE 3003
|
EXPOSE 3003
|
||||||
|
|
||||||
# Variáveis de ambiente
|
|
||||||
ENV NODE_ENV=production
|
ENV NODE_ENV=production
|
||||||
ENV PORT=3003
|
ENV PORT=3003
|
||||||
|
|
||||||
# Comando de inicialização
|
|
||||||
CMD ["node", "server.js"]
|
CMD ["node", "server.js"]
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue