Image Details

Summary
Image Reference registry.sc.dtgn.io/dtgn/tolki-app@sha256:6ffa7d6bad0e64b4e148e0839d50fbbf27bf6f396dd356444f4cfd95b9e391d5
Digest sha256:6ffa7d6bad0e64b4e148e0839d50fbbf27bf6f396dd356444f4cfd95b9e391d5
Media Type application/vnd.docker.distribution.manifest.v2+json
Image ID ab622cced343
Image Size 296.2 MB
Platform linux/amd64
Created On 2026-01-31 21:35:42 UTC
Manifest
config
digest sha256:ab622cced3430422b23891d496e1461905f805b618aef2b8533a8ff4b1d54425
mediaType application/vnd.docker.container.image.v1+json
size 13 KB
layers
digest sha256:589002ba0eaed121a1dbf42f6648f29e5be55d5c8a6ee0f8eaa0285cc21ac153
mediaType application/vnd.docker.image.rootfs.diff.tar.gzip
size 3.7 MB
digest sha256:4ef00bbbc75186b55c2be094a1c5ac03cbfac8897f1f2ed86107bf908a95fda9
mediaType application/vnd.docker.image.rootfs.diff.tar.gzip
size 48.6 MB
digest sha256:14b92b0c10a5cc759604614d048be3aad4c013e9b574a6bff7f6fa78ac4e5860
mediaType application/vnd.docker.image.rootfs.diff.tar.gzip
size 1.2 MB
digest sha256:8d660e9b10b3e184cb399d48eb01ecf741674c77553a9a4c3490696169041c5d
mediaType application/vnd.docker.image.rootfs.diff.tar.gzip
size 446 B
digest sha256:8f1ba78b8b45165fe99f08983f717d1a9fceb042f15da0b41be8119de5d4a34c
mediaType application/vnd.docker.image.rootfs.diff.tar.gzip
size 93 B
digest sha256:d68d5891b3b2dd5bbde7b4db90ac077cf12ff15737ae7acd885ad2633ea5a82f
mediaType application/vnd.docker.image.rootfs.diff.tar.gzip
size 239 KB
digest sha256:3795f515d720b84b0ee331702d74ecf02275ef5d78d941403ada16eec9587d5b
mediaType application/vnd.docker.image.rootfs.diff.tar.gzip
size 110.6 MB
digest sha256:35eb457e70fb75ecc39d7f3259320b0e02058e55a82283c50c62d60f0ad460d8
mediaType application/vnd.docker.image.rootfs.diff.tar.gzip
size 10.8 MB
digest sha256:1376cbccf5255c04b423344bff3b7f9e17005ee7a56c444cc96aa4d501c1370e
mediaType application/vnd.docker.image.rootfs.diff.tar.gzip
size 2 KB
digest sha256:d1a78275461fc78234152edd186e88ee46bff3be33b0a70b6355161fabdf56c5
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.13.0
YARN_VERSION=1.22.22
NODE_ENV=production
REACT_APP_BACKEND_URL=https://api-tolki.datagenio.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 2026-01-31T21:35:42.443825344Z
history
comment buildkit.dockerfile.v0
created 2026-01-28T01:18:04.977843834Z
created_by ADD alpine-minirootfs-3.23.3-x86_64.tar.gz / # buildkit
comment buildkit.dockerfile.v0
created 2026-01-28T01:18:04.977843834Z
created_by CMD ["/bin/sh"]
empty_layer true
comment buildkit.dockerfile.v0
created 2026-01-28T03:29:50.013013059Z
created_by ENV NODE_VERSION=24.13.0
empty_layer true
comment buildkit.dockerfile.v0
created 2026-01-28T03:29:50.013013059Z
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="d2fc40cf688de9de1d85ac67536ede51445a45925e1823255db1c3365b83ac44" 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 2026-01-28T03:29:50.013013059Z
created_by ENV YARN_VERSION=1.22.22
empty_layer true
comment buildkit.dockerfile.v0
created 2026-01-28T03:29:53.457214143Z
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 2026-01-28T03:29:53.515084168Z
created_by COPY docker-entrypoint.sh /usr/local/bin/ # buildkit
comment buildkit.dockerfile.v0
created 2026-01-28T03:29:53.515084168Z
created_by ENTRYPOINT ["docker-entrypoint.sh"]
empty_layer true
comment buildkit.dockerfile.v0
created 2026-01-28T03:29:53.515084168Z
created_by CMD ["node"]
empty_layer true
comment buildkit.dockerfile.v0
created 2026-01-31T18:56:49.150992739Z
created_by ENV NODE_ENV=production
empty_layer true
comment buildkit.dockerfile.v0
created 2026-01-31T18:56:49.150992739Z
created_by WORKDIR /app
comment buildkit.dockerfile.v0
created 2026-01-31T18:56:49.150992739Z
created_by ARG REACT_APP_BACKEND_URL
empty_layer true
comment buildkit.dockerfile.v0
created 2026-01-31T18:56:49.150992739Z
created_by ENV REACT_APP_BACKEND_URL=https://api-tolki.datagenio.com.br
empty_layer true
comment buildkit.dockerfile.v0
created 2026-01-31T18:56:49.150992739Z
created_by ARG REACT_APP_HOURS_CLOSE_TICKETS_AUTO
empty_layer true
comment buildkit.dockerfile.v0
created 2026-01-31T18:56:49.150992739Z
created_by ENV REACT_APP_HOURS_CLOSE_TICKETS_AUTO=
empty_layer true
comment buildkit.dockerfile.v0
created 2026-01-31T18:56:49.150992739Z
created_by ARG STACK_NAME
empty_layer true
comment buildkit.dockerfile.v0
created 2026-01-31T18:56:49.150992739Z
created_by ENV STACK_NAME=
empty_layer true
comment buildkit.dockerfile.v0
created 2026-01-31T18:56:49.150992739Z
created_by ARG REACT_APP_COLOR
empty_layer true
comment buildkit.dockerfile.v0
created 2026-01-31T18:56:49.150992739Z
created_by ENV REACT_APP_COLOR=
empty_layer true
comment buildkit.dockerfile.v0
created 2026-01-31T18:56:49.150992739Z
created_by ARG REACT_APP_TAB_NAME
empty_layer true
comment buildkit.dockerfile.v0
created 2026-01-31T18:56:49.150992739Z
created_by ENV REACT_APP_TAB_NAME=
empty_layer true
comment buildkit.dockerfile.v0
created 2026-01-31T18:56:49.274265492Z
created_by COPY package*.json ./ # buildkit
comment buildkit.dockerfile.v0
created 2026-01-31T21:30:43.12524568Z
created_by RUN |5 REACT_APP_BACKEND_URL=https://api-tolki.datagenio.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 2026-01-31T21:33:00.829569776Z
created_by COPY /app/build ./build # buildkit
comment buildkit.dockerfile.v0
created 2026-01-31T21:33:00.870848315Z
created_by COPY server.js ./ # buildkit
comment buildkit.dockerfile.v0
created 2026-01-31T21:35:42.443825344Z
created_by RUN |5 REACT_APP_BACKEND_URL=https://api-tolki.datagenio.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 2026-01-31T21:35:42.443825344Z
created_by USER nextjs
empty_layer true
comment buildkit.dockerfile.v0
created 2026-01-31T21:35:42.443825344Z
created_by EXPOSE map[3001/tcp:{}]
empty_layer true
comment buildkit.dockerfile.v0
created 2026-01-31T21:35:42.443825344Z
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 2026-01-31T21:35:42.443825344Z
created_by CMD ["node" "server.js"]
empty_layer true
os linux
rootfs
diff_ids
sha256:989e799e634906e94dc9a5ee2ee26fc92ad260522990f26e707861a5f52bf64e
sha256:7be7cab7ec0591ca10ca93840da1e6a9b1bab4ef575cea0d0daf28714cca3dd0
sha256:c07146c069027635943129cbf628d9af266d5ea71c0e1588ba0538604c0ffc53
sha256:4310ddbc53c5fd868e2fc3b40d8d237800fb53385a3b8a7a8e67205e8e5c2104
sha256:82301e3482180906bef999916f5b37accd9cccd7ab1985e041a35919e87459be
sha256:4646956304a36fd49e8140ccde2d7b8f62dd01fef2014cb2ef6e3faaa675c2f4
sha256:fed0860ac33af3a1cafe6f1b95ec4abe2c71bfe007ae61266233f0deadb75257
sha256:2c54b03ecea6a3ab8bc47e851233676e9a0f1400fcd33cdab1133bbaaff5dfd6
sha256:1cbbdad97ad8f9509db8c00c1e0189e5326acdd4bf6cd8a9188b7578263e3248
sha256:d0f4e97fc5f4d5cde39defd065b821e1677640f8e26cab641b6860e39879a6dc
type layers