Image Details

Summary
Image Reference registry.sc.dtgn.io/dtgn/tolki-app:1.5.4
Digest sha256:a0ab6d8e273d8646a13019a04e01e4b2e784c1e6f3d5cfe8dff3f260267734f5
Media Type application/vnd.docker.distribution.manifest.v2+json
Image ID 88a21757b28a
Image Size 296.1 MB
Platform linux/amd64
Created On 2025-12-03 18:02:53 UTC
Manifest
config
digest sha256:88a21757b28aa373780b9d7b05d5fa03c867ed644eaf476e8679ba7afbf50986
mediaType application/vnd.docker.container.image.v1+json
size 13 KB
layers
digest sha256:2d35ebdb57d9971fea0cac1582aa78935adf8058b2cc32db163c98822e5dfa1b
mediaType application/vnd.docker.image.rootfs.diff.tar.gzip
size 3.6 MB
digest sha256:0ad6b75bfecf09f5483895f7a30ab9af8315d1d20a08329d0fc091c96bf756f0
mediaType application/vnd.docker.image.rootfs.diff.tar.gzip
size 48.6 MB
digest sha256:572392f439b9cba4dd81d87da90e1b64140478de7f3a1fc13d0592c31d5a4ad3
mediaType application/vnd.docker.image.rootfs.diff.tar.gzip
size 1.2 MB
digest sha256:e731d1c17be0459197f82c0ffe5922a848f40c78e6f03f23f9926892e549f924
mediaType application/vnd.docker.image.rootfs.diff.tar.gzip
size 447 B
digest sha256:3a289d104b52e6dc38aa170ea51aecabdc67693c1356d93f527c7f7d755891cb
mediaType application/vnd.docker.image.rootfs.diff.tar.gzip
size 93 B
digest sha256:416fcd9ccef0ce805ba9481099fb93cbe5e3413cfd629c38d528e8607bcf52b3
mediaType application/vnd.docker.image.rootfs.diff.tar.gzip
size 239 KB
digest sha256:27f07c46553b2ca019698ff08a25e1512b5aa684175e0950a4e3dcd7fdd11c47
mediaType application/vnd.docker.image.rootfs.diff.tar.gzip
size 110.6 MB
digest sha256:ad9b388c3698c4054e9d9d7756602b394382df2fd2a09fb0a6e73984fecedb08
mediaType application/vnd.docker.image.rootfs.diff.tar.gzip
size 10.8 MB
digest sha256:c22a79708b99f75d35871c77c02834053b2171a7b16d6260f9429c81cdd2d6fa
mediaType application/vnd.docker.image.rootfs.diff.tar.gzip
size 2 KB
digest sha256:733d30dd864eec0365cb68c302c2dd78470706d7642c8e28518ecf88d43d8b5d
mediaType application/vnd.docker.image.rootfs.diff.tar.gzip
size 121.0 MB
mediaType application/vnd.docker.distribution.manifest.v2+json
schemaVersion 2
Config File
architecture amd64
config
ArgsEscaped true
Cmd
node
server.js
Entrypoint
docker-entrypoint.sh
Env
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
NODE_VERSION=24.11.1
YARN_VERSION=1.22.22
NODE_ENV=production
REACT_APP_BACKEND_URL=https://api.tolki.com.br
REACT_APP_HOURS_CLOSE_TICKETS_AUTO=
STACK_NAME=
REACT_APP_COLOR=
REACT_APP_TAB_NAME=
ExposedPorts
3001/tcp
Healthcheck
Interval 30000000000
Retries 3
StartPeriod 30000000000
Test
CMD-SHELL
node -e " const http = require('http'); const fs = require('fs'); console.log('[HEALTHCHECK] Verificando saúde do servidor...'); // Verificar se o diretório build existe if (!fs.existsSync('/app/build')) { console.log('[HEALTHCHECK] ERRO: Diretório build não encontrado'); process.exit(1); } // Verificar se index.html existe if (!fs.existsSync('/app/build/index.html')) { console.log('[HEALTHCHECK] ERRO: index.html não encontrado'); process.exit(1); } const options = { hostname: 'localhost', port: 3001, path: '/', timeout: 8000, headers: { 'User-Agent': 'Docker-HealthCheck' } }; const req = http.request(options, (res) => { console.log('[HEALTHCHECK] Status:', res.statusCode); if (res.statusCode === 200) { console.log('[HEALTHCHECK] ✅ Servidor saudável'); process.exit(0); } else { console.log('[HEALTHCHECK] ❌ Status inválido:', res.statusCode); process.exit(1); } }); req.on('error', (err) => { console.log('[HEALTHCHECK] ❌ Erro na requisição:', err.message); process.exit(1); }); req.on('timeout', () => { console.log('[HEALTHCHECK] ❌ Timeout na requisição'); req.destroy(); process.exit(1); }); req.end(); "
Timeout 10000000000
User nextjs
WorkingDir /app
created 2025-12-03T18:02:53.197522461Z
history
comment buildkit.dockerfile.v0
created 2025-10-08T11:04:56Z
created_by ADD alpine-minirootfs-3.22.2-x86_64.tar.gz / # buildkit
comment buildkit.dockerfile.v0
created 2025-10-08T11:04:56Z
created_by CMD ["/bin/sh"]
empty_layer true
comment buildkit.dockerfile.v0
created 2025-11-12T18:36:34.553596355Z
created_by ENV NODE_VERSION=24.11.1
empty_layer true
comment buildkit.dockerfile.v0
created 2025-11-12T18:36:34.553596355Z
created_by RUN /bin/sh -c addgroup -g 1000 node && adduser -u 1000 -G node -s /bin/sh -D node && apk add --no-cache libstdc++ && apk add --no-cache --virtual .build-deps curl && ARCH= OPENSSL_ARCH='linux*' && alpineArch="$(apk --print-arch)" && case "${alpineArch##*-}" in x86_64) ARCH='x64' CHECKSUM="825c670d7212b6d5a04f8b2462bb3fd4f15cc5842a7e934de307070e4408d2aa" OPENSSL_ARCH=linux-x86_64;; x86) OPENSSL_ARCH=linux-elf;; aarch64) OPENSSL_ARCH=linux-aarch64;; arm*) OPENSSL_ARCH=linux-armv4;; ppc64le) OPENSSL_ARCH=linux-ppc64le;; s390x) OPENSSL_ARCH=linux-s390x;; *) ;; esac && if [ -n "${CHECKSUM}" ]; then set -eu; curl -fsSLO --compressed "https://unofficial-builds.nodejs.org/download/release/v$NODE_VERSION/node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz"; echo "$CHECKSUM node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz" | sha256sum -c - && tar -xJf "node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz" -C /usr/local --strip-components=1 --no-same-owner && ln -s /usr/local/bin/node /usr/local/bin/nodejs; else echo "Building from source" && apk add --no-cache --virtual .build-deps-full binutils-gold g++ gcc gnupg libgcc linux-headers make python3 py-setuptools && export GNUPGHOME="$(mktemp -d)" && for key in 5BE8A3F6C8A5C01D106C0AD820B1A390B168D356 DD792F5973C6DE52C432CBDAC77ABFA00DDBF2B7 CC68F5A3106FF448322E48ED27F5E38D5B0A215F 8FCCA13FEF1D0C2E91008E09770F7A9A5AE15600 890C08DB8579162FEE0DF9DB8BEAB4DFCF555EF4 C82FA3AE1CBEDC6BE46B9360C43CEC45C17AB93C 108F52B48DB57BB0CC439B2997B01419BD92F80A A363A499291CBBC940DD62E41F10027AF002F8B0 ; do { gpg --batch --keyserver hkps://keys.openpgp.org --recv-keys "$key" && gpg --batch --fingerprint "$key"; } || { gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key" && gpg --batch --fingerprint "$key"; } ; done && curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/node-v$NODE_VERSION.tar.xz" && curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/SHASUMS256.txt.asc" && gpg --batch --decrypt --output SHASUMS256.txt SHASUMS256.txt.asc && gpgconf --kill all && rm -rf "$GNUPGHOME" && grep " node-v$NODE_VERSION.tar.xz\$" SHASUMS256.txt | sha256sum -c - && tar -xf "node-v$NODE_VERSION.tar.xz" && cd "node-v$NODE_VERSION" && ./configure && make -j$(getconf _NPROCESSORS_ONLN) V= && make install && apk del .build-deps-full && cd .. && rm -Rf "node-v$NODE_VERSION" && rm "node-v$NODE_VERSION.tar.xz" SHASUMS256.txt.asc SHASUMS256.txt; fi && rm -f "node-v$NODE_VERSION-linux-$ARCH-musl.tar.xz" && find /usr/local/include/node/openssl/archs -mindepth 1 -maxdepth 1 ! -name "$OPENSSL_ARCH" -exec rm -rf {} \; && apk del .build-deps && node --version && npm --version && rm -rf /tmp/* # buildkit
comment buildkit.dockerfile.v0
created 2025-11-12T18:36:34.553596355Z
created_by ENV YARN_VERSION=1.22.22
empty_layer true
comment buildkit.dockerfile.v0
created 2025-11-12T18:36:38.234010934Z
created_by RUN /bin/sh -c apk add --no-cache --virtual .build-deps-yarn curl gnupg tar && export GNUPGHOME="$(mktemp -d)" && for key in 6A010C5166006599AA17F08146C2130DFD2497F5 ; do { gpg --batch --keyserver hkps://keys.openpgp.org --recv-keys "$key" && gpg --batch --fingerprint "$key"; } || { gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key" && gpg --batch --fingerprint "$key"; } ; done && curl -fsSLO --compressed "https://yarnpkg.com/downloads/$YARN_VERSION/yarn-v$YARN_VERSION.tar.gz" && curl -fsSLO --compressed "https://yarnpkg.com/downloads/$YARN_VERSION/yarn-v$YARN_VERSION.tar.gz.asc" && gpg --batch --verify yarn-v$YARN_VERSION.tar.gz.asc yarn-v$YARN_VERSION.tar.gz && gpgconf --kill all && rm -rf "$GNUPGHOME" && mkdir -p /opt && tar -xzf yarn-v$YARN_VERSION.tar.gz -C /opt/ && ln -s /opt/yarn-v$YARN_VERSION/bin/yarn /usr/local/bin/yarn && ln -s /opt/yarn-v$YARN_VERSION/bin/yarnpkg /usr/local/bin/yarnpkg && rm yarn-v$YARN_VERSION.tar.gz.asc yarn-v$YARN_VERSION.tar.gz && apk del .build-deps-yarn && yarn --version && rm -rf /tmp/* # buildkit
comment buildkit.dockerfile.v0
created 2025-11-12T18:36:38.288189468Z
created_by COPY docker-entrypoint.sh /usr/local/bin/ # buildkit
comment buildkit.dockerfile.v0
created 2025-11-12T18:36:38.288189468Z
created_by ENTRYPOINT ["docker-entrypoint.sh"]
empty_layer true
comment buildkit.dockerfile.v0
created 2025-11-12T18:36:38.288189468Z
created_by CMD ["node"]
empty_layer true
comment buildkit.dockerfile.v0
created 2025-12-03T15:24:36.86787771Z
created_by ENV NODE_ENV=production
empty_layer true
comment buildkit.dockerfile.v0
created 2025-12-03T15:24:36.86787771Z
created_by WORKDIR /app
comment buildkit.dockerfile.v0
created 2025-12-03T15:24:36.86787771Z
created_by ARG REACT_APP_BACKEND_URL
empty_layer true
comment buildkit.dockerfile.v0
created 2025-12-03T15:24:36.86787771Z
created_by ENV REACT_APP_BACKEND_URL=https://api.tolki.com.br
empty_layer true
comment buildkit.dockerfile.v0
created 2025-12-03T15:24:36.86787771Z
created_by ARG REACT_APP_HOURS_CLOSE_TICKETS_AUTO
empty_layer true
comment buildkit.dockerfile.v0
created 2025-12-03T15:24:36.86787771Z
created_by ENV REACT_APP_HOURS_CLOSE_TICKETS_AUTO=
empty_layer true
comment buildkit.dockerfile.v0
created 2025-12-03T15:24:36.86787771Z
created_by ARG STACK_NAME
empty_layer true
comment buildkit.dockerfile.v0
created 2025-12-03T15:24:36.86787771Z
created_by ENV STACK_NAME=
empty_layer true
comment buildkit.dockerfile.v0
created 2025-12-03T15:24:36.86787771Z
created_by ARG REACT_APP_COLOR
empty_layer true
comment buildkit.dockerfile.v0
created 2025-12-03T15:24:36.86787771Z
created_by ENV REACT_APP_COLOR=
empty_layer true
comment buildkit.dockerfile.v0
created 2025-12-03T15:24:36.86787771Z
created_by ARG REACT_APP_TAB_NAME
empty_layer true
comment buildkit.dockerfile.v0
created 2025-12-03T15:24:36.86787771Z
created_by ENV REACT_APP_TAB_NAME=
empty_layer true
comment buildkit.dockerfile.v0
created 2025-12-03T17:55:43.148437764Z
created_by COPY package*.json ./ # buildkit
comment buildkit.dockerfile.v0
created 2025-12-03T17:56:21.834418385Z
created_by RUN |5 REACT_APP_BACKEND_URL=https://api.tolki.com.br REACT_APP_HOURS_CLOSE_TICKETS_AUTO= STACK_NAME= REACT_APP_COLOR= REACT_APP_TAB_NAME= /bin/sh -c npm ci --only=production --prefer-offline --no-audit && npm cache clean --force # buildkit
comment buildkit.dockerfile.v0
created 2025-12-03T17:58:31.152748136Z
created_by COPY /app/build ./build # buildkit
comment buildkit.dockerfile.v0
created 2025-12-03T17:58:31.177941081Z
created_by COPY server.js ./ # buildkit
comment buildkit.dockerfile.v0
created 2025-12-03T18:02:53.197522461Z
created_by RUN |5 REACT_APP_BACKEND_URL=https://api.tolki.com.br REACT_APP_HOURS_CLOSE_TICKETS_AUTO= STACK_NAME= REACT_APP_COLOR= REACT_APP_TAB_NAME= /bin/sh -c addgroup -g 1001 -S nodejs && adduser -S nextjs -u 1001 && chown -R nextjs:nodejs /app # buildkit
comment buildkit.dockerfile.v0
created 2025-12-03T18:02:53.197522461Z
created_by USER nextjs
empty_layer true
comment buildkit.dockerfile.v0
created 2025-12-03T18:02:53.197522461Z
created_by EXPOSE map[3001/tcp:{}]
empty_layer true
comment buildkit.dockerfile.v0
created 2025-12-03T18:02:53.197522461Z
created_by HEALTHCHECK &{["CMD-SHELL" "node -e \" const http = require('http'); const fs = require('fs'); console.log('[HEALTHCHECK] Verificando saúde do servidor...'); // Verificar se o diretório build existe if (!fs.existsSync('/app/build')) { console.log('[HEALTHCHECK] ERRO: Diretório build não encontrado'); process.exit(1); } // Verificar se index.html existe if (!fs.existsSync('/app/build/index.html')) { console.log('[HEALTHCHECK] ERRO: index.html não encontrado'); process.exit(1); } const options = { hostname: 'localhost', port: 3001, path: '/', timeout: 8000, headers: { 'User-Agent': 'Docker-HealthCheck' } }; const req = http.request(options, (res) => { console.log('[HEALTHCHECK] Status:', res.statusCode); if (res.statusCode === 200) { console.log('[HEALTHCHECK] ✅ Servidor saudável'); process.exit(0); } else { console.log('[HEALTHCHECK] ❌ Status inválido:', res.statusCode); process.exit(1); } }); req.on('error', (err) => { console.log('[HEALTHCHECK] ❌ Erro na requisição:', err.message); process.exit(1); }); req.on('timeout', () => { console.log('[HEALTHCHECK] ❌ Timeout na requisição'); req.destroy(); process.exit(1); }); req.end(); \""] "30s" "10s" "30s" "0s" '\x03'}
empty_layer true
comment buildkit.dockerfile.v0
created 2025-12-03T18:02:53.197522461Z
created_by CMD ["node" "server.js"]
empty_layer true
os linux
rootfs
diff_ids
sha256:256f393e029fa2063d8c93720da36a74a032bed3355a2bc3e313ad12f8bde9d1
sha256:b0f89ac7b96689b3a3132ecd2a444b2c50457582dd0d902d5df4fb1dc387dadf
sha256:d3b1ea8ff6e6deea487334f351fe4a288fbf1edb3e0a77a41ea8685404098eed
sha256:2497eefc52641b150e173349a15fd0247a0d6e9f409b8d0c3547ad9ee1344ec9
sha256:c76fc04c6d8622ec8f672e3a5afb17cb1ad16b61d65a78eefa7654485200c075
sha256:9143cad233307327713119b63740c912fcc50c510d5d6acb1d5bdce1c9687e9a
sha256:39169ece5f63e6776b90cf89bf55b27448a1b047185ab7e5668a2604a920eb88
sha256:5dbfd4c0831d166fa2a0e8a1ccfaef9d4b4ca870d857482c25332643d62a8af4
sha256:39a5cf419c468a3cfaa2d86c1299b37d957cc7c488a6cab4edb926f3a632af8a
sha256:32d896ebe34b2c2d8e01c2b8452b80188bbbe3939f4fbeac235f76b289915de0
type layers