diff --git a/.drone.yml b/.drone.yml new file mode 100644 index 0000000..92d3256 --- /dev/null +++ b/.drone.yml @@ -0,0 +1,42 @@ +kind: pipeline +type: ssh +name: multipool-ta-fe-build-deploy + +server: + host: + from_secret: ssh_host + user: + from_secret: ssh_user + ssh_key: + from_secret: ssh_key + +steps: + - name: prepare repo + when: + branch: + - main + commands: + - rm -rf /opt/build/multipool-ta-fe + - mkdir -p /opt/build + - cd /opt/build + - git clone http://38.47.180.165:3000/multipool-ta/multipool-ta-fe.git + + - name: build image + when: + branch: + - main + commands: + - docker login 38.47.180.165:3000 -u administrator -p HarborDockerImageRep0 + - cd /opt/build/multipool-ta-fe + - docker build -t 38.47.180.165:3000/multipool-ta/multipool-ta-fe:$DRONE_BRANCH . + - docker push 38.47.180.165:3000/multipool-ta/multipool-ta-fe:$DRONE_BRANCH + + - name: deploy + when: + branch: + - main + commands: + - docker pull 38.47.180.165:3000/multipool-ta/multipool-ta-fe:$DRONE_BRANCH + - docker stop web-multipool-ta-fe|| true + - docker rm web-multipool-ta-fe || true + - docker run -dt -p 4800:4000 --restart always --name web-multipool-ta-fe 38.47.180.165:3000/multipool-ta/multipool-ta-fe:$DRONE_BRANCH diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..dc046e8 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,34 @@ +FROM node:23.5.0-alpine + +ENV PORT=4000 +ENV NODE_ENV=production +ENV NODE_OPTIONS="--max-old-space-size=4096" + +RUN apk add --no-cache \ + python3 \ + make \ + g++ \ + git \ + sqlite-dev + +WORKDIR /usr/src/app + +# Copy dependency files +COPY package.json package-lock.json ./ + +# Install dependencies +RUN npm install + +# Copy source code +COPY . . + +# Init DB (aman karena pakai || true) +# RUN mkdir -p ./lib/db +# RUN node scripts/init-db.js || true + +# Build Next.js +RUN npm run build + +EXPOSE 4000 + +CMD ["npm", "run", "start"]