FROM node:20-alpine3.16 WORKDIR /app ADD . /app # install dependency sistem RUN apk add --no-cache \ font-noto font-noto-cjk font-noto-extra gcompat libstdc++ libuuid \ vips-dev build-base jpeg-dev pango-dev cairo-dev imagemagick libssl1.1 \ curl ca-certificates # buat symlink resolv RUN ln -s /lib/libresolv.so.2 /usr/lib/libresolv.so.2 # install node modules RUN npm install # download assets RUN mkdir -p assets/emoji # download pattern images RUN curl -fsSL -o assets/pattern_02.png \ https://raw.githubusercontent.com/LyoSU/quote-api/master/assets/pattern_02.png \ && curl -fsSL -o assets/pattern_ny.png \ https://raw.githubusercontent.com/LyoSU/quote-api/master/assets/pattern_ny.png \ && curl -fsSL -o assets/pattern_ny_old.png \ https://raw.githubusercontent.com/LyoSU/quote-api/master/assets/pattern_ny_old.png # download emoji JSON files RUN curl -fsSL -o assets/emoji/emoji-apple-image.json \ https://raw.githubusercontent.com/LyoSU/quote-api/master/assets/emoji/emoji-apple-image.json \ && curl -fsSL -o assets/emoji/emoji-google-image.json \ https://raw.githubusercontent.com/LyoSU/quote-api/master/assets/emoji/emoji-google-image.json \ && curl -fsSL -o assets/emoji/emoji-joypixels-image.json \ https://raw.githubusercontent.com/LyoSU/quote-api/master/assets/emoji/emoji-joypixels-image.json \ && curl -fsSL -o assets/emoji/emoji-twitter-image.json \ https://raw.githubusercontent.com/LyoSU/quote-api/master/assets/emoji/emoji-twitter-image.json # verify downloaded files RUN ls -lah assets/ && ls -lah assets/emoji/ EXPOSE 7860 # Set DNS untuk runtime ENV NODE_OPTIONS="--dns-result-order=ipv4first" CMD ["node", "index.js"]