Commit e9858f10 authored by Anthony Gautreau's avatar Anthony Gautreau
Browse files

Docker : surcharge de développement versionnée en compose.override.yaml.dist...

Docker : surcharge de développement versionnée en compose.override.yaml.dist (plus chargée en production), WORKDIR dans Dockerfile-php
parent 0d0fbee4
Loading
Loading
Loading
Loading
Loading
+1 −0
Changes for .gitignore: 1 added line, 0 removed lines.
Original line number Diff line number Diff line
@@ -2,3 +2,4 @@
server_conf/ssl/*
!/server_conf/ssl/*.dist
.idea
/compose.override.yaml
+3 −0
Changes for Dockerfile-php: 3 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -27,6 +27,9 @@ RUN set -eux; \
# Change the PHP-FPM listening port to 9001, dans un fichier chargé en dernier : l'emplacement de « listen = 9000 » change selon les versions de l'image
RUN printf '[www]\nlisten = 9001\n' > /usr/local/etc/php-fpm.d/zzz-listen.conf

# Dossier de l'application, l'entrypoint travaille en chemins relatifs
WORKDIR /usr/local/apache2/htdocs

COPY --chmod=755 server_conf/docker-entrypoint.sh /usr/local/bin/docker-entrypoint

ENTRYPOINT ["docker-entrypoint"]
+4 −0
Changes for README.md: 4 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -242,6 +242,8 @@ docker compose up -d
```
Pendant le `compose up`, les migrations de la base de données sont jouées automatiquement.

Pour le développement, copier `compose.override.yaml.dist` en `compose.override.yaml`, que Compose charge automatiquement : PostgreSQL publié sur `127.0.0.1:5433`, `api/var` gardé dans un volume. Ne pas créer ce fichier en production.

### 5. Mettre en place une tâche cron pour l'importation des données

Pour mettre en place une tâche cron pour l'importation des données, vous pouvez ajouter une tâche cron avec la commande suivante :
@@ -271,6 +273,8 @@ docker exec smile-connect-php bin/console doctrine:migrations:migrate --no-inter

`composer install` vide aussi le cache Symfony et régénère les fichiers de `api/public/bundles`.

Les versions précédentes chargeaient en production la surcharge de développement, devenue `compose.override.yaml.dist` : `api/var` (cache et journaux) était dans un volume anonyme et revient dans le dépôt. Après la mise à jour, `docker volume prune` supprime l'ancien volume.

Avant de mettre à jour, comparez votre `.env` avec `.env.dist` pour reporter les éventuelles nouvelles variables. Vos requêtes `api/data/*.sql` ne sont pas versionnées et ne sont pas touchées par la mise à jour.

## Utilisation
+1 −2
Changes for compose.override.yaml: 1 added line, 2 removed lines.
Original line number Diff line number Diff line
# Development environment override
# Surcharge de développement, à copier en compose.override.yaml (ignoré par git) : Compose la charge automatiquement
services:
  php:
    build:
      context: .
    working_dir: /usr/local/apache2/htdocs/
    volumes:
      - ./api:/usr/local/apache2/htdocs/
      - /usr/local/apache2/htdocs/var
+22 −0
Changes for compose.override.yaml.dist: 22 added lines, 0 removed lines.
Original line number Diff line number Diff line
# Surcharge de développement, à copier en compose.override.yaml (ignoré par git) : Compose la charge automatiquement
services:
  php:
    build:
      context: .
    volumes:
      - ./api:/usr/local/apache2/htdocs/
      - /usr/local/apache2/htdocs/var
    environment:
      # See https://xdebug.org/docs/all_settings#mode
      XDEBUG_MODE: "${XDEBUG_MODE:-off}"
      XDEBUG_CONFIG: "idekey=PHPSTORM"
    extra_hosts:
      - host.docker.internal:host-gateway
    tty: true

  database:
    ports:
      - target: 5432
        published: 5433
        host_ip: 127.0.0.1
        protocol: tcp