refactor: rename email-server-worker to email-worker
Rename directory from email-server-worker to email-worker for clarity and brevity. Update all references in CLAUDE.md documentation.
This commit is contained in:
75
email-worker/Dockerfile
Normal file
75
email-worker/Dockerfile
Normal file
@@ -0,0 +1,75 @@
|
||||
#-------------------------------------------------------------
|
||||
# Build command: docker build . -t pr-d-registry.ngit.hr/ngit/evo-open-table-sync-svc:1.0.0
|
||||
#-------------------------------------------------------------
|
||||
|
||||
#--------------------------------------------
|
||||
# Stage: building TypeScript
|
||||
#--------------------------------------------
|
||||
FROM node:18 as build-stage
|
||||
|
||||
ENV WORKDIR=/app
|
||||
WORKDIR /app
|
||||
|
||||
# kopiram SSH key & known_hosts koji su potrebni za `npm i`
|
||||
# zato što `package.json` pri instalacija NGIT paketa koristi
|
||||
# SSH autentikaciju
|
||||
COPY _docker_assets/.ssh /root/.ssh
|
||||
RUN chmod 700 /root/.ssh/*
|
||||
|
||||
COPY ./package*.json ./
|
||||
|
||||
# instaliram pakete
|
||||
RUN npm i && npm cache clean --force
|
||||
|
||||
COPY ./tsconfig.json ./
|
||||
COPY ./src ./src
|
||||
RUN npm run build
|
||||
|
||||
#--------------------------------------------
|
||||
# Stage: instaliram produkcijski node_modules
|
||||
#--------------------------------------------
|
||||
FROM node:18 as package-stage
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
COPY ./package*.json ./
|
||||
|
||||
# instaliram SAMO produkcijske
|
||||
RUN npm i --only=production && npm cache clean --force
|
||||
|
||||
#--------------------------------------------
|
||||
# Stage: priprema finalnog image-a
|
||||
#--------------------------------------------
|
||||
FROM gcr.io/distroless/nodejs:18 as assembly-stage
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
ARG PORT="3000"
|
||||
ENV PORT=${PORT}
|
||||
|
||||
# prometheus config
|
||||
ARG PROMETHEUS_APP_LABEL
|
||||
ENV PROMETHEUS_APP_LABEL=${PROMETHEUS_APP_LABEL}
|
||||
|
||||
ARG PROMETHEUS_HISTOGRAM_BUCKETS
|
||||
ENV PROMETHEUS_HISTOGRAM_BUCKETS=${PROMETHEUS_HISTOGRAM_BUCKETS}
|
||||
|
||||
# (optional) logiranje na stdout (moguće opcije: "server:server", "server:metrics", "server:healthcheck" )
|
||||
ARG DEBUG
|
||||
ENV DEBUG=${DEBUG}
|
||||
|
||||
# kopiram node-modules
|
||||
COPY --from=package-stage /app/package*.json ./
|
||||
COPY --from=package-stage /app/node_modules ./node_modules
|
||||
|
||||
# kopiram buildane datoteke
|
||||
COPY --from=build-stage /app/build/ ./server
|
||||
|
||||
# server vrtim pod ograničenim "nobody" korisnikom
|
||||
USER nobody:nobody
|
||||
|
||||
HEALTHCHECK --interval=30s --timeout=3s --start-period=10s \
|
||||
CMD ["/nodejs/bin/node", "./server/healthcheck.js"]
|
||||
|
||||
# pokrećem server
|
||||
CMD ["./server/entry.js"]
|
||||
Reference in New Issue
Block a user