Installieren Sie Docker unter CentOS. Siehe offizielle Seite für Details https://docs.docker.com/engine/installation/linux/docker-ce/centos/
yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum makecache fast
yum install docker-ce
systemctl enable docker
systemctl start docker
(1) Erstellen Sie ein Image von CentOS7
docker pull centos:centos7
docker run -it centos:centos7 /bin/bash
(2) Führen Sie LibreOffice- und IPA-Schriftarten ein
yum update -y
yum install libreoffice* ipa-*-fonts
(3) Erstellen Sie einen Arbeitsordner
mkdir /tmp/
exit
(4) Überprüfen Sie die CONTAINER-ID von Docker
docker ps -a
(5) Commit mit dem Namen "Büro" Geben Sie die CONTAINER ID ein, die zuvor in * $ {CONTAINER ID} * bestätigt wurde.
docker commit ${CONTAINER ID} office
(6) Überprüfen Sie, ob es ordnungsgemäß funktioniert Es wird davon ausgegangen, dass die Datei "/var/tmp/test.xlsx" unter CentOS vorhanden ist. Bei normaler Ausführung wird "/var/tmp/test.pdf" generiert.
docker run --rm=true -it -v /var/tmp:/tmp office libreoffice --headless --nologo --nofirststartwizard --convert-to pdf --outdir /tmp /tmp/test.xlsx
Dies ist ein Beispiel, um Docker mit der Java-Prozessklasse zu starten.
/**
*Über Docker in PDF konvertieren
* @param excelFileName
* @param pdfFileName
* @return
* @throws InterruptedException
*/
public boolean convertPDF(String excelFileName) throws InterruptedException {
//Befehlsspezifikation starten
String[] command = {
"docker", "run", "--rm=true", "-v", "/var/tmp:/tmp", "office", "libreoffice", "--headless"
, "--nologo", "--nofirststartwizard", "--convert-to", "pdf", "--outdir"
,"/tmp", "/tmp/"+excelFileName };
ProcessBuilder pb = new ProcessBuilder(command);
try {
//Befehlsausführung
Process process = pb.start();
//Warten Sie auf das Ergebnis der Befehlsausführung
int ret = process.waitFor();
//Standardausgabe
InputStream is = process.getInputStream();
printInputStream(is);
//Standart Fehler
InputStream es = process.getErrorStream();
printInputStream(es);
}
catch (Exception e) {
return false;
}
return true;
}
/**
*Standard- / Fehlerausgabe anzeigen
* @param is
* @throws IOException
*/
public static void printInputStream(InputStream is) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(is));
try {
for (;;) {
String line = br.readLine();
if (line == null) break;
System.out.println(line);
}
} finally {
br.close();
}
}
Recommended Posts