0

My goal is to build an image using the scratch image as the base. However, the image should be able to run pdftotext, a subpackage from poppler-utils package.

What I've did:

  1. I tried to use FROM alpine:3.16 and RUN apk add poppler-utils. This is the current solution that I use.
  2. Try to copy the folder for pdftotext. First, I do whereis pdftotext. Then, I copy the folder in the Dockerfile.

Reference: StackOverflow's question

Dockerfile

# syntax=docker/dockerfile:1

# Alpine is chosen for its small footprint
# compared to Ubuntu
FROM golang:1.19-alpine AS build

RUN adduser \
--disabled-password \
--gecos "" \
--home "/nonexistent" \
--shell "/sbin/nologin" \
--no-create-home \
--uid "10001" \
"appuser"

RUN apk add poppler-utils

WORKDIR /app

# Download necessary Go modules
COPY go.mod ./
COPY go.sum ./
RUN go mod download

COPY . ./

RUN go build -o /main examples/api/main.go

FROM alpine:3.16

WORKDIR /

COPY --from=build /main /main
COPY --from=build /etc/passwd /etc/passwd
COPY --from=build /etc/group /etc/group
COPY --from=build /usr/bin/pdftotext /usr/bin/pdftotext

EXPOSE 8080

# Use an underprivileged user.
USER appuser:appuser

CMD ["./main"]

The problem is when I tried to do docker run [imagename] pdftotext. It throws:

Error loading shared library libpoppler.so.121: No such file or directory (needed by /usr/bin/pdftotext)
Error loading shared library libstdc++.so.6: No such file or directory (needed by /usr/bin/pdftotext)
Error relocating /usr/bin/pdftotext: _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_replaceEmmPKcm: symbol not found
Error relocating /usr/bin/pdftotext: _ZN6PDFDoc11getNumPagesEv: symbol not found
Error relocating /usr/bin/pdftotext: _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1ERKS4_: symbol not found
Error relocating /usr/bin/pdftotext: _ZNK10UnicodeMap10mapUnicodeEjPci: symbol not found
Error relocating /usr/bin/pdftotext: _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7_S_copyEPcPKcm: symbol not found
Error relocating /usr/bin/pdftotext: _ZSt24__throw_out_of_range_fmtPKcz: symbol not found
Error relocating /usr/bin/pdftotext: _ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEC1Ev: symbol not found
Error relocating /usr/bin/pdftotext: _Znwm: symbol not found
Error relocating /usr/bin/pdftotext: _ZN13TextOutputDev12makeWordListEv: symbol not found
Error relocating /usr/bin/pdftotext: _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_: symbol not found
Error relocating /usr/bin/pdftotext: _ZNK4Dict6lookupEPKci: symbol not found
Error relocating /usr/bin/pdftotext: _ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEED1Ev: symbol not found
Error relocating /usr/bin/pdftotext: _ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7compareEPKc: symbol not found
Error relocating /usr/bin/pdftotext: _ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc: symbol not found
Error relocating /usr/bin/pdftotext: _ZN9GooString7appendfEPKcz: symbol not found
Error relocating /usr/bin/pdftotext: _ZN13PDFDocFactoryD1Ev: symbol not found
Error relocating /usr/bin/pdftotext: _ZSt20__throw_length_errorPKc: symbol not found
Error relocating /usr/bin/pdftotext: _ZN6PDFDoc16displayPageSliceEP9OutputDeviddibbbiiiiPFbPvES2_PFbP5AnnotS2_ES2_b: symbol not found
Error relocating /usr/bin/pdftotext: gatof: symbol not found
Error relocating /usr/bin/pdftotext: _ZNKSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE3strEv: symbol not found
Error relocating /usr/bin/pdftotext: _ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE: symbol not found
Error relocating /usr/bin/pdftotext: _ZN13PDFDocFactoryC1EPSt6vectorIP13PDFDocBuilderSaIS2_EE: symbol not found
Error relocating /usr/bin/pdftotext: _ZN13PDFDocFactory12createPDFDocERK9GooStringRKSt8optionalIS0_ES6_Pv: symbol not found
Error relocating /usr/bin/pdftotext: _ZNK12TextWordList9getLengthEv: symbol not found
Error relocating /usr/bin/pdftotext: _ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7compareERKS4_: symbol not found
Error relocating /usr/bin/pdftotext: _ZN12GlobalParams16getEncodingNamesB5cxx11Ev: symbol not found
Error relocating /usr/bin/pdftotext: _ZN12GlobalParams15getTextEncodingEv: symbol not found
Error relocating /usr/bin/pdftotext: _ZN12GlobalParamsC1EPKc: symbol not found
Error relocating /usr/bin/pdftotext: _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_appendEPKcm: symbol not found
Error relocating /usr/bin/pdftotext: _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_: symbol not found
Error relocating /usr/bin/pdftotext: _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_createERmm: symbol not found
Error relocating /usr/bin/pdftotext: _ZN6PDFDoc7getPageEi: symbol not found
Error relocating /usr/bin/pdftotext: _ZN12GlobalParamsD1Ev: symbol not found
Error relocating /usr/bin/pdftotext: _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_S_copy_charsEPcPKcS7_: symbol not found
Error relocating /usr/bin/pdftotext: _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2EOS4_: symbol not found
Error relocating /usr/bin/pdftotext: _ZNSolsEPFRSt8ios_baseS0_E: symbol not found
Error relocating /usr/bin/pdftotext: _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4swapERS4_: symbol not found
Error relocating /usr/bin/pdftotext: _ZN6PDFDocD1Ev: symbol not found
Error relocating /usr/bin/pdftotext: _ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4findERKS4_m: symbol not found
Error relocating /usr/bin/pdftotext: _ZN4XRef10getDocInfoEv: symbol not found
Error relocating /usr/bin/pdftotext: _Z5error13ErrorCategoryxPKcz: symbol not found
Error relocating /usr/bin/pdftotext: _ZSt19__throw_logic_errorPKc: symbol not found
Error relocating /usr/bin/pdftotext: _ZNK8TextWord7getTextEv: symbol not found
Error relocating /usr/bin/pdftotext: _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_disposeEv: symbol not found
Error relocating /usr/bin/pdftotext: _ZN12GlobalParams11setErrQuietEb: symbol not found
Error relocating /usr/bin/pdftotext: _ZNK13TextOutputDev8getFlowsEv: symbol not found
Error relocating /usr/bin/pdftotext: _ZN12TextWordList3getEi: symbol not found
Error relocating /usr/bin/pdftotext: _ZN6PDFDoc11displayPageEP9OutputDeviddibbbPFbPvES2_PFbP5AnnotS2_ES2_b: symbol not found
Error relocating /usr/bin/pdftotext: _ZN12TextWordListD1Ev: symbol not found
Error relocating /usr/bin/pdftotext: _ZN13TextOutputDevC1EPKcbdbbb: symbol not found
Error relocating /usr/bin/pdftotext: _Z15parseDateStringPK9GooStringPiS2_S2_S2_S2_S2_PcS2_S2_: symbol not found
Error relocating /usr/bin/pdftotext: _ZN13TextOutputDevD0Ev: symbol not found
Error relocating /usr/bin/pdftotext: _ZN6PDFDoc12displayPagesEP9OutputDeviiddibbbPFbPvES2_PFbP5AnnotS2_ES2_: symbol not found
Error relocating /usr/bin/pdftotext: _ZdlPvm: symbol not found
Error relocating /usr/bin/pdftotext: _ZN6Object4freeEv: symbol not found
Error relocating /usr/bin/pdftotext: _ZNSo9_M_insertIdEERSoT_: symbol not found
Error relocating /usr/bin/pdftotext: _ZN12GlobalParams15setTextEncodingEPKc: symbol not found
Error relocating /usr/bin/pdftotext: pdfDocEncoding: symbol not found
Error relocating /usr/bin/pdftotext: globalParams: symbol not found
Error relocating /usr/bin/pdftotext: _ZN13TextOutputDev22minColSpacing1_defaultE: symbol not found
Jason Rich Darmawan
  • 1,607
  • 3
  • 14
  • 31

0 Answers0