[JAVA] Créer un conteneur Docker pour convertir EPS en source PGF

L'année dernière, M. Kano de Lambda Note a annoncé TeXConf 2018 et TeX & LaTeX Advent Calendar 2018. EPS dans un environnement TeX moderne dans article du jour 4 de //adventar.org/calendars/3382) Il a mentionné comment utiliser les fichiers.

Dans cet article, un outil appelé ** eps2pgf ** a été introduit.

Certaines personnes pensent la même chose, et certaines personnes ont déjà créé un outil de conversion en Java appelé ** eps2pgf ** (Référence. )). Actuellement, il est posté sur Sourceforge, mais il n'y a pas de source, et il semble qu'il ne soit pas maintenu, mais pour le moment, je l'ai téléchargé et utilisé, et j'ai obtenu des résultats satisfaisants.

Cet outil appelé eps2pgf est un outil Java il y a plus de 10 ans (c'était en août 2008 lorsque vous regardez la date de mise à jour), mais maintenant c'est `Status. : Abandonné », et le développement semble s'être arrêté depuis longtemps. Bien qu'il s'agisse d'une licence Apache, la source est manquante.

Cependant, c'est toujours un outil très utile (je suis heureux de pouvoir convertir EPS en source PGF article de M. Kano / 183000)). Cependant, installer la JVM juste pour cela est un problème, j'ai donc créé un conteneur Docker qui contient la JVM et cet outil.

Quelle image Java Docker choisir?

Docker Hub a beaucoup d'images officielles Java (JRE, JDK), et je me demande laquelle choisir. Dans l'article suivant, chaque fonctionnalité et chaque critère de sélection ont été résumés de manière simple à comprendre.

Cette fois,

alors,

J'ai choisi ʻopenjdk: 8-jre-alpine`.

Comment utiliser

L'image terminée a été téléchargée sur Docker Hub en tant que doratex / eps2pgf.

$ docker pull doratex/eps2pgf

Ensuite, vous pouvez tirer.

Puisque / workdir est le répertoire de travail dans le conteneur, on suppose qu'il sera monté en liaison et utilisé avec le répertoire courant.

alias eps2pgf="docker run --rm \
  --mount type=bind,src=\"\$(pwd)\",dst=/workdir \
  doratex/eps2pgf"

Ce sera plus facile si vous définissez un alias tel que. Puisque le script wrapper de ʻeps2pgf.jar est spécifié comme ʻENTRYPOINT de l'image Docker, sous cet alias est défini.

$ eps2pgf tiger.eps -o tiger.pgf

Vous pouvez convertir des plaques EPS en sources PGF, par exemple.

Manuel

Le manuel original ʻeps2pgf.jarest disponible dans l'archive du référentiel SourceForge (https://sourceforge.net/projects/eps2pgf/). Il est également enregistré dans/ eps2pgf / doc /` dans le conteneur Docker, donc

$ docker run --rm \
  --mount type=bind,src="$(pwd)",dst=/workdir \
  --entrypoint /bin/cp \
  doratex/eps2pgf \
  -p /eps2pgf/doc/eps2pgf_manual.pdf .

Vous pouvez également le récupérer dans le répertoire actuel en tant que tel.

Dockerfile

Le Dockerfile préparé pour créer cette image est le suivant.

Dockerfile


FROM openjdk:8-jre-alpine

LABEL maintainer="doraTeX <taylorkgb [at] gmail.com>"

WORKDIR /workdir

RUN apk upgrade --update && \
    mkdir /eps2pgf && \
    cd /eps2pgf && \
    wget -q https://excellmedia.dl.sourceforge.net/project/eps2pgf/Eps2pgf/Eps2pgf%200.7.0/eps2pgf-0.7.0.zip && \
    unzip eps2pgf-0.7.0.zip && \
    rm eps2pgf-0.7.0.zip && \
    cd /usr/local/bin && \
    printf "%s\n" \
      "#!/bin/sh" \
      "java -jar /eps2pgf/eps2pgf.jar \"\$@\"" \
      > eps2pgf && \
    chmod +x eps2pgf

ENTRYPOINT ["eps2pgf"]

Recommended Posts

Créer un conteneur Docker pour convertir EPS en source PGF
Comment obtenir un heapdump à partir d'un conteneur Docker
J'ai créé un conteneur Docker pour exécuter Maven
Comment créer une méthode
Comment créer une image de conteneur légère pour les applications Java
J'ai essayé de créer un environnement de développement padrino avec Docker
Créez un environnement Vue3 avec Docker!
Introduction à Linux Container / Docker (Partie 1)
Comment créer un conteneur Java
Introduction à Linux Container / Docker (Partie 2)
Exécuter PureScript sur un conteneur Docker
Créons un conteneur Docker qui peut SSH à la configuration minimale de CentOS 8
Essayez de créer une application client serveur
Utilisez Jenkins pour créer dans Docker, puis créez une image Docker.
[Docker] Comment créer un environnement virtuel pour les applications Rails et Nuxt.js
[Docker] Comment créer lorsque le code source est monté en liaison sur le conteneur
Comment démarrer un conteneur Docker avec un volume monté dans un fichier de commandes
Créez rapidement un environnement Web à l'aide de Docker
Docker push vers GitHub Container Registry (ghcr.io)
Comment créer un référentiel Maven pour 2020
[Docker] Copie des fichiers du conteneur Docker vers l'hôte
La construction du conteneur Docker ne parvient pas à installer php-radis
Introduction au développement pratique de conteneurs Docker / Kubernetes
[Swift5] Comment créer un écran de démarrage
[rails] Comment créer un modèle partiel
Manuel Docker Compact (4: Créer une image personnalisée)
Réponse d'erreur du démon: conflit: un conflit s'est produit lorsque j'ai essayé de créer un conteneur Docker, donc la solution
J'ai essayé de créer un portefeuille avec AWS, Docker, CircleCI, Laravel [avec lien de référence]
Comment créer une petite image docker de l'application openjdk 11 (EA) (1 Go → 85 Mo)
[Première construction d'environnement] J'ai essayé de créer un environnement Rails6 + MySQL8.0 + Docker sur Windows 10.
Jusqu'au lancement d'un conteneur Docker construit avec RedHat Quarkus
Créez un environnement de développement pour créer des applications Ruby on Jets + React avec Docker
[Introduction à Docker] Créer une image Docker pour l'apprentissage automatique et utiliser le notebook Jupyter
Comment créer une base de données H2 n'importe où
[Memo] Créez facilement un environnement CentOS 8 avec Docker
Comment vérifier le journal dans le conteneur Docker
[Android] Créez une nouvelle classe en héritant d'ImageView
[Rails] rails nouveau pour créer une base de données avec PostgreSQL
[Rails] Comment créer un graphique à l'aide de lazy_high_charts
[Android] Comment convertir une chaîne de caractères en resourceId
Convertissez une chaîne en un tableau caractère par caractère avec Swift
Paramètre pour quitter le conteneur Docker avec VScode
Copier les fichiers du conteneur Docker vers l'hôte (docker cp)
Comment créer une classe qui hérite des informations de classe
Comment convertir un contrat de solidité en une classe de contrat Java
J'ai essayé de créer une application de clonage LINE
Comment mettre à jour un fichier prédéfini dans un conteneur Docker
Comment créer un thème dans Liferay 7 / DXP