Sortir les bouts de codes #81

Open
opened 2023-04-22 07:38:18 +02:00 by Sulley · 0 comments
Collaborator

Je crois qu'il faudrait sortir les bouts de codes.

Ca permettrait de respecter le principe SRP : le fichier .tex de base contient le texte et les liens (parce qu'il faut bien) vers les images, les bouts de code, la bibliographie, …

Mettre les bout de code (et les info du terminal) dans des fichiers à part permettra de les réutiliser a plusieurs endroits si nécessaire. Cela permettra aussi une relecture et une évolution du texte plus facile (rechercher/remplacer, …) sans impacter le code.

Exemple:

\begin{listing}[H]
    \begin{verbatim}
    version: '3'

    volumes:
        local_postgres_data: {}
        local_postgres_data_backups: {}

    services:
        << description des services >>
    \end{verbatim}
\end{listing}

\begin{listing}[H]
    \begin{verbatim}
    django: &django
        build:
            context: .
            dockerfile: ./compose/local/django/Dockerfile
        image: khana_local_django
        container_name: django
        depends_on:
            - postgres
        volumes:
            - .:/app:z
        env_file:
            - ./.envs/.local/.django
            - ./.envs/.local/.postgres
        ports:
            - "8000:8000"
        command: /start
    \end{verbatim}
\end{listing}

\begin{listing}[H]
    \begin{verbatim}
    postgres:
        build:
        context: .
            dockerfile: ./compose/production/postgres/Dockerfile
        image: khana_production_postgres
        container_name: postgres
        volumes:
            - local_postgres_data:/var/lib/postgresql/data:Z
            - local_postgres_data_backups:/backups:z
        env_file:
            - ./.envs/.local/.postgres
    \end{verbatim}
\end{listing}

\begin{listing}[H]
    \begin{verbatim}
    docs:
        image: khana_local_docs
        container_name: docs
        build:
            context: .
            dockerfile: ./compose/local/docs/Dockerfile
        env_file:
            - ./.envs/.local/.django
        volumes:
            - ./docs:/docs:z
            - ./config:/app/config:z
            - ./khana:/app/khana:z
        ports:
            - "7000:7000"
        command: /start-docs
    \end{verbatim}
\end{listing}

\begin{listing}[H]
    \begin{verbatim}
    redis:
        image: redis:5.0
        container_name: redis
    \end{verbatim}
\end{listing}

\begin{listing}[H]
    \begin{verbatim}
    celeryworker:
        <<: *django
        image: khana_local_celeryworker
        container_name: celeryworker
        depends_on:
            - redis
            - postgres
        ports: []
        command: /start-celeryworker
    \end{verbatim}
\end{listing}

\begin{listing}[H]
    \begin{verbatim}
    celerybeat:
        <<: *django
        image: khana_local_celerybeat
        container_name: celerybeat
        depends_on:
        - redis
        - postgres
        ports: []
        command: /start-celerybeat
    \end{verbatim}
\end{listing}

\begin{listing}[H]
    \begin{verbatim}
    flower:
        <<: *django
        image: khana_local_flower
        container_name: flower
        ports:
        - "5555:5555"
        command: /start-flower
    \end{verbatim}
\end{listing}

\subsection{Docker-compose}

\begin{listing}[H]
    \begin{verbatim}
        # docker-compose.yml

        version: '3.8'
        services:
            web:
            build: .
                command: python /code/manage.py runserver 0.0.0.0:8000
            volumes:
            - .:/code
            ports:
            - 8000:8000
            depends_on:
            - slqserver

            slqserver:
            image: mcr.microsoft.com/mssql/server:2019-latest
            environment:
            - "ACCEPT_EULA=Y"
            - "SA_PASSWORD=sqklgjqihagrtdgqk12§!"
            ports:
            - 1433:1433
            volumes:
            - ../sqlserver/data:/var/opt/mssql/data
            - ../sqlserver/log:/var/opt/mssql/log
            - ../sqlserver/secrets:/var/opt/mssql/secrets
    \end{verbatim}
\end{listing}

Ce grand bout de code devrait en fait être une dizaine de petits fichiers séparés placés dans un dossier src par exemple.

Je crois qu'il faudrait sortir les bouts de codes. Ca permettrait de respecter le principe SRP : le fichier .tex de base contient le texte et les liens (parce qu'il faut bien) vers les images, les bouts de code, la bibliographie, … Mettre les bout de code (et les info du terminal) dans des fichiers à part permettra de les réutiliser a plusieurs endroits si nécessaire. Cela permettra aussi une relecture et une évolution du texte plus facile (rechercher/remplacer, …) sans impacter le code. Exemple: ``` \begin{listing}[H] \begin{verbatim} version: '3' volumes: local_postgres_data: {} local_postgres_data_backups: {} services: << description des services >> \end{verbatim} \end{listing} \begin{listing}[H] \begin{verbatim} django: &django build: context: . dockerfile: ./compose/local/django/Dockerfile image: khana_local_django container_name: django depends_on: - postgres volumes: - .:/app:z env_file: - ./.envs/.local/.django - ./.envs/.local/.postgres ports: - "8000:8000" command: /start \end{verbatim} \end{listing} \begin{listing}[H] \begin{verbatim} postgres: build: context: . dockerfile: ./compose/production/postgres/Dockerfile image: khana_production_postgres container_name: postgres volumes: - local_postgres_data:/var/lib/postgresql/data:Z - local_postgres_data_backups:/backups:z env_file: - ./.envs/.local/.postgres \end{verbatim} \end{listing} \begin{listing}[H] \begin{verbatim} docs: image: khana_local_docs container_name: docs build: context: . dockerfile: ./compose/local/docs/Dockerfile env_file: - ./.envs/.local/.django volumes: - ./docs:/docs:z - ./config:/app/config:z - ./khana:/app/khana:z ports: - "7000:7000" command: /start-docs \end{verbatim} \end{listing} \begin{listing}[H] \begin{verbatim} redis: image: redis:5.0 container_name: redis \end{verbatim} \end{listing} \begin{listing}[H] \begin{verbatim} celeryworker: <<: *django image: khana_local_celeryworker container_name: celeryworker depends_on: - redis - postgres ports: [] command: /start-celeryworker \end{verbatim} \end{listing} \begin{listing}[H] \begin{verbatim} celerybeat: <<: *django image: khana_local_celerybeat container_name: celerybeat depends_on: - redis - postgres ports: [] command: /start-celerybeat \end{verbatim} \end{listing} \begin{listing}[H] \begin{verbatim} flower: <<: *django image: khana_local_flower container_name: flower ports: - "5555:5555" command: /start-flower \end{verbatim} \end{listing} \subsection{Docker-compose} \begin{listing}[H] \begin{verbatim} # docker-compose.yml version: '3.8' services: web: build: . command: python /code/manage.py runserver 0.0.0.0:8000 volumes: - .:/code ports: - 8000:8000 depends_on: - slqserver slqserver: image: mcr.microsoft.com/mssql/server:2019-latest environment: - "ACCEPT_EULA=Y" - "SA_PASSWORD=sqklgjqihagrtdgqk12§!" ports: - 1433:1433 volumes: - ../sqlserver/data:/var/opt/mssql/data - ../sqlserver/log:/var/opt/mssql/log - ../sqlserver/secrets:/var/opt/mssql/secrets \end{verbatim} \end{listing} ``` Ce grand bout de code devrait en fait être une dizaine de petits fichiers séparés placés dans un dossier `src` par exemple.
Sulley added the
bug
invalid
labels 2023-04-22 07:38:18 +02:00
Sulley changed title from Sortir les bout de codes to Sortir les bouts de codes 2023-04-22 07:38:31 +02:00
Sign in to join this conversation.
No Milestone
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: Fred/gwift-book#81
No description provided.