---
title: Déployer avec Docker
description: Construisez un conteneur Thally, persistez les données locales si nécessaire, et exécutez le site de documentation sur un hôte de conteneur.
url: https://docs.thally.io/fr/guides/deploy-docker
---

# Déployer avec Docker

Construisez un conteneur Thally, persistez les données locales si nécessaire, et exécutez le site de documentation sur un hôte de conteneur.

{/* thally:ai-translation locale=fr source-sha=1ec3337a9bb599c2cebba1d6559b6b2267b68583d70da0b5d9aa6c094463205b */}
{/* Remove the marker above before manual edits to opt out of automatic refresh. */}

Utilisez Docker lorsque votre plateforme exécute des conteneurs ou lorsque vous souhaitez que le site et ses fichiers libSQL locaux partagent un volume persistant.

## Créer un Dockerfile

Créez d'abord `.dockerignore` pour éviter que les identifiants locaux et les artefacts de construction ne soient copiés dans une couche d'image :

```text
node_modules
.next
.open-next
.git
.env*
.data
*.pem
npm-debug.log*
```

Ajoutez ce `Dockerfile` à la racine du projet :

```dockerfile
FROM node:22-alpine AS builder
WORKDIR /app
COPY package*.json ./
RUN npm ci
COPY . .
RUN npm run build

FROM node:22-alpine AS runner
WORKDIR /app
ENV NODE_ENV=production
RUN mkdir -p /app/.data && chown node:node /app/.data
COPY --chown=node:node --from=builder /app/.next ./.next
COPY --chown=node:node --from=builder /app/node_modules ./node_modules
COPY --chown=node:node --from=builder /app/package.json ./package.json
COPY --chown=node:node --from=builder /app/public ./public
COPY --chown=node:node --from=builder /app/src/content ./src/content
COPY --chown=node:node --from=builder /app/docs.json ./docs.json
COPY --chown=node:node --from=builder /app/openapi.yaml ./openapi.yaml
USER node
EXPOSE 3040
CMD ["npm", "start"]
```

Si votre projet utilise un chemin de spécification API différent ou des ressources chargées à l'exécution, copiez également ces fichiers dans l'étape runner.

## Construire et exécuter

```bash
docker build -t my-docs .
docker run --rm -p 3040:3040 \
  -e THALLY_SITE_URL=https://docs.example.com \
  my-docs
```

Ouvrez [http://localhost:3040](http://localhost:3040) pour tester le conteneur.
Exécutez les commandes de test de fumée HTTP pour la page d'accueil, la page imbriquée et `/llms.txt` à partir de
[Vérifier le site en direct](/guides/deploying#verify-the-live-site) par rapport à l'URL du conteneur avant de pousser l'image vers un hôte de production.

## Persister les données d'exécution

Montez `/app/.data` lorsque les analyses et l'état admin local doivent survivre au remplacement du conteneur :

```bash
docker run -d -p 3040:3040 \
  -e THALLY_SITE_URL=https://docs.example.com \
  -v thally-data:/app/.data \
  my-docs
```

Vous pouvez également configurer les variables libSQL distantes à partir de la
[référence des variables d'environnement](/guides/environment-variables).

## Vérifier le déploiement

Vérifiez les journaux du conteneur, ouvrez une route de documentation imbriquée et testez les fonctionnalités serveur activées. Confirmez que votre plateforme transfère le port 3040 et fournit les secrets en tant que variables d'environnement plutôt que de les intégrer dans l'image.

## Étapes suivantes

- [Protéger la documentation privée](/guides/private-docs)
- [Analyses et commentaires](/guides/analytics-and-feedback)
- [Dépanner un déploiement](/guides/troubleshooting)