neutrinolabs-xrdp
SUCCESS
14m 40s
History Source
SummaryIterations1Transcript19Dockerfile
01Iteration 1
WRITEWriteFile· step #1
0s
Dockerfile937 bytes written
text29 lines · 937 chars
FROM ubuntu:22.04 AS builder
ENV DEBIAN_FRONTEND=noninteractive

RUN apt-get update && apt-get install -y --no-install-recommends \
  build-essential autoconf automake libtool pkg-config git \
  openssl libssl-dev libpam0g-dev libx11-dev libxfixes-dev libxrandr-dev libpixman-1-dev \
  libjpeg-dev libimlib2-dev fuse3 \
  && rm -rf /var/lib/apt/lists/*

WORKDIR /src
COPY . /src

RUN ./bootstrap && ./configure && make -j$(nproc) && make install

FROM ubuntu:22.04
ENV DEBIAN_FRONTEND=noninteractive

RUN apt-get update && apt-get install -y --no-install-recommends \
  ca-certificates libpam0g5 libx11-6 libxext6 libxfixes3 libxrandr2 libpixman-1-0 libglib2.0-0 libssl3 zlib1g \
  && rm -rf /var/lib/apt/lists/*

COPY --from=builder /usr/local /usr/local

RUN bash -lc 'cat > /start.sh << "EOF"\n#!/bin/sh\nset -e\n/usr/local/sbin/xrdp-sesman &\n/usr/local/sbin/xrdp &\nwait -n\nEOF\nchmod +x /start.sh'

EXPOSE 3389

CMD ["/start.sh"]
WRITEWriteFile· step #2
0s
.dockerignore45 bytes written
dockerignore5 lines · 45 chars
**/.git
**/node_modules
**/__pycache__
*.log
VERIFYVerifyBuild· step #3
57s
VerifyBuildbuild_failed
Build error
Summary of Docker build error

- Failing step (command):
  Dockerfile:18
  RUN apt-get update && apt-get install -y --no-install-recommends \
    ca-certificates libpam0g5 libx11-6 libxext6 libxfixes3 libxrandr2 libpixman-1-0 libglib2.0-0 libssl3 zlib1g \
    && rm -rf /var/lib/apt/lists/*

- Exact error message and exit code:
  E: Unable to locate package libpam0g5
  The overall failure ends with: failed to build: failed to solve: process "/bin/sh -c apt-get update && apt-get install -y --no-install-recommends   ca-certificates libpam0g5 libx11-6 libxext6 libxfixes3 libxrandr2 libpixman-1-0 libglib2.0-0 libssl3 zlib1g   && rm -rf /var/lib/apt/lists/*" did not complete successfully: exit code: 100

- Missing packages or files mentioned:
  - libpam0g5 (not found in the repository)

- Version mismatch / repo info:
  - Base image is ubuntu:22.04 (jammy). The package libpam0g5 is not available in jammy’s apt repositories (apt reports “Unable to locate package libpam0g5”). A separate stage uses libpam0g-dev (which exists), indicating inconsistent package names across stages and a possible package-name/version mismatch for this base image.
WRITEWriteFile· step #4
0s
Dockerfile936 bytes written
text29 lines · 936 chars
FROM ubuntu:22.04 AS builder
ENV DEBIAN_FRONTEND=noninteractive

RUN apt-get update && apt-get install -y --no-install-recommends \
  build-essential autoconf automake libtool pkg-config git \
  openssl libssl-dev libpam0g-dev libx11-dev libxfixes-dev libxrandr-dev libpixman-1-dev \
  libjpeg-dev libimlib2-dev fuse3 \
  && rm -rf /var/lib/apt/lists/*

WORKDIR /src
COPY . /src

RUN ./bootstrap && ./configure && make -j$(nproc) && make install

FROM ubuntu:22.04
ENV DEBIAN_FRONTEND=noninteractive

RUN apt-get update && apt-get install -y --no-install-recommends \
  ca-certificates libpam0g libx11-6 libxext6 libxfixes3 libxrandr2 libpixman-1-0 libglib2.0-0 libssl3 zlib1g \
  && rm -rf /var/lib/apt/lists/*

COPY --from=builder /usr/local /usr/local

RUN bash -lc 'cat > /start.sh << "EOF"\n#!/bin/sh\nset -e\n/usr/local/sbin/xrdp-sesman &\n/usr/local/sbin/xrdp &\nwait -n\nEOF\nchmod +x /start.sh'

EXPOSE 3389

CMD ["/start.sh"]
VERIFYVerifyBuild· step #5
32s
VerifyBuildrejected
Concerns: The RUN command that creates /start.sh uses a heredoc with literal \n sequences, which will likely not produce a valid multi-line script. This will cause the image build to fail or /start.sh to be missing or invalid., The runtime image expects /usr/local/sbin/xrdp-sesman and /usr/local/sbin/xrdp to exist; unless the build actually compiles and installs xrdp, these binaries may be missing, causing runtime failure even if the build step succeeds., No .dockerignore is shown, which could lead to large build contexts and slower builds.
WRITEWriteFile· step #6
0s
Dockerfile937 bytes written
text29 lines · 937 chars
FROM ubuntu:22.04 AS builder
ENV DEBIAN_FRONTEND=noninteractive

RUN apt-get update && apt-get install -y --no-install-recommends \
  build-essential autoconf automake libtool pkg-config git \
  openssl libssl-dev libpam0g-dev libx11-dev libxfixes-dev libxrandr-dev libpixman-1-dev \
  libjpeg-dev libimlib2-dev fuse3 \
  && rm -rf /var/lib/apt/lists/*

WORKDIR /src
COPY . /src

RUN ./bootstrap && ./configure && make -j$(nproc) && make install

FROM ubuntu:22.04
ENV DEBIAN_FRONTEND=noninteractive

RUN apt-get update && apt-get install -y --no-install-recommends \
  ca-certificates libpam0g5 libx11-6 libxext6 libxfixes3 libxrandr2 libpixman-1-0 libglib2.0-0 libssl3 zlib1g \
  && rm -rf /var/lib/apt/lists/*

COPY --from=builder /usr/local /usr/local

RUN bash -lc 'cat > /start.sh << "EOF"\n#!/bin/sh\nset -e\n/usr/local/sbin/xrdp-sesman &\n/usr/local/sbin/xrdp &\nwait -n\nEOF\nchmod +x /start.sh'

EXPOSE 3389

CMD ["/start.sh"]
VERIFYVerifyBuild· step #7
38s
VerifyBuildrejected
Concerns: The RUN that creates /start.sh uses a here-doc with escaped newlines (<< "EOF" followed by \n sequences inside a single-quoted string). This will not produce a valid multi-line script, likely resulting in a broken /start.sh or build failure., The start script uses /bin/sh (dash) and 'wait -n'. Dash's wait does not support the -n option, so the script may fail to start the services (xrdp-sesman and xrdp)., The final image relies on building and installing xrdp components via ./bootstrap, ./configure, etc., which may fail if the build prerequisites or repository layout differ in the monorepo. The Dockerfile assumes a specific project structure.
WRITEWriteFile· step #8
0s
Dockerfile1075 bytes written
text30 lines · 1075 chars
FROM ubuntu:22.04 AS builder
ENV DEBIAN_FRONTEND=noninteractive

RUN apt-get update && apt-get install -y --no-install-recommends \
  build-essential autoconf automake libtool pkg-config git \
  openssl libssl-dev libpam0g-dev libx11-dev libxfixes-dev libxrandr-dev libpixman-1-dev \
  libjpeg-dev libimlib2-dev fuse3 \
  && rm -rf /var/lib/apt/lists/*

WORKDIR /src
COPY . /src

# Build from source
RUN ./bootstrap && ./configure && make -j$(nproc) && make install

FROM ubuntu:22.04
ENV DEBIAN_FRONTEND=noninteractive

RUN apt-get update && apt-get install -y --no-install-recommends \
  ca-certificates libpam0g libx11-6 libxext6 libxfixes3 libxrandr2 libpixman-1-0 libglib2.0-0 libssl3 zlib1g \
  && rm -rf /var/lib/apt/lists/*

COPY --from=builder /usr/local /usr/local

RUN bash -lc 'cat > /start.sh << "EOF"\n#!/bin/sh\nset -e\n\n# Start services in background and wait for them in foreground\n/usr/local/sbin/xrdp-sesman & SESMAN_PID=$!\n/usr/local/sbin/xrdp & XRDP_PID=$!\n\nwait $SESMAN_PID\nwait $XRDP_PID\nEOF\nchmod +x /start.sh'

EXPOSE 3389

CMD ["/start.sh"]
VERIFYVerifyBuild· step #9
32s
VerifyBuildrejected
Concerns: Potential syntax error creating /start.sh: the RUN instruction uses a here-doc with a quoted EOF and appears to inject literal "\n" sequences instead of actual newlines, which would likely produce an invalid script or fail to build., Unclear if the build actually installs xrdp-sesman and xrdp into /usr/local/sbin; if not, the start script will fail at runtime., Starting xrdp inside a container may require privileged runtime features (e.g., access to /dev/fuse or host X11 components) which are not addressed or guaranteed in this Dockerfile.
WRITEWriteFile· step #10
1s
Dockerfile964 bytes written
text31 lines · 964 chars
FROM ubuntu:22.04 AS builder
ENV DEBIAN_FRONTEND=noninteractive

RUN apt-get update && apt-get install -y --no-install-recommends \
  build-essential autoconf automake libtool pkg-config git \
  openssl libssl-dev libpam0g-dev libx11-dev libxfixes-dev libxrandr-dev libpixman-1-dev \
  libjpeg-dev libimlib2-dev fuse3 \
  && rm -rf /var/lib/apt/lists/*

WORKDIR /src
COPY . /src

# Build from source
RUN ./bootstrap && ./configure && make -j$(nproc) && make install

FROM ubuntu:22.04
ENV DEBIAN_FRONTEND=noninteractive

RUN apt-get update && apt-get install -y --no-install-recommends \
  ca-certificates libpam0g libx11-6 libxext6 libxfixes3 libxrandr2 libpixman-1-0 libglib2.0-0 libssl3 zlib1g \
  && rm -rf /var/lib/apt/lists/*

COPY --from=builder /usr/local /usr/local

RUN printf '%s\n' '#!/bin/sh' 'set -e' '' '/usr/local/sbin/xrdp-sesman &' '/usr/local/sbin/xrdp &' 'wait -n' 'exit 0' > /start.sh \
  && chmod +x /start.sh

EXPOSE 3389

CMD ["/start.sh"]
VERIFYVerifyBuild· step #11
32s
VerifyBuildrejected
Concerns: The start script uses 'wait -n', which is not part of POSIX/sh and may not be supported by /bin/sh (dash) in Ubuntu. This can cause the container's entrypoint to fail to start or behave unpredictably., No explicit verification that the build will succeed in all environments; if bootstrap/configure/make fail, the final image will not contain the expected /usr/local binaries, yet the runtime stage may still claim readiness., Runtime dependency handling could be brittle (e.g., missing runtime libraries or mismatched libxxx versions) since /usr/local is copied from builder but runtime libs are installed separately; ensure compatibility between build and runtime stages.
WRITEWriteFile· step #12
0s
Dockerfile1003 bytes written
text30 lines · 1003 chars
FROM ubuntu:22.04 AS builder
ENV DEBIAN_FRONTEND=noninteractive

RUN apt-get update && apt-get install -y --no-install-recommends \
  build-essential autoconf automake libtool pkg-config git \
  openssl libssl-dev libpam0g-dev libx11-dev libxfixes-dev libxrandr-dev libpixman-1-dev \
  libjpeg-dev libimlib2-dev fuse3 \
  && rm -rf /var/lib/apt/lists/*

WORKDIR /src
COPY . /src

# Build from source
RUN ./bootstrap && ./configure && make -j$(nproc) && make install

FROM ubuntu:22.04
ENV DEBIAN_FRONTEND=noninteractive

RUN apt-get update && apt-get install -y --no-install-recommends \
  ca-certificates libpam0g libx11-6 libxext6 libxfixes3 libxrandr2 libpixman-1-0 libglib2.0-0 libssl3 zlib1g \
  && rm -rf /var/lib/apt/lists/*

COPY --from=builder /usr/local /usr/local

RUN bash -lc 'cat > /start.sh << "EOF"\n#!/bin/sh\nset -e\n/usr/local/sbin/xrdp-sesman &\nSESMAN_PID=$!\n/usr/local/sbin/xrdp &\nXRDP_PID=$!\nwait $SESMAN_PID $XRDP_PID\nEOF\nchmod +x /start.sh'

EXPOSE 3389

CMD ["/start.sh"]
VERIFYVerifyBuild· step #13
1m 42s
VerifyBuildbuild_failed
Build error
Summary of Docker build error

- Failing command/step
  - [builder 5/5] RUN ./bootstrap && ./configure && make -j$(nproc) && make install

- Exact error message(s) and exit code
  - fatal: unable to access 'https://github.com/neutrinolabs/libpainter.git/': server certificate verification failed. CAfile: none CRLfile: none
  - fatal: clone of 'https://github.com/neutrinolabs/libpainter.git' into submodule path '/src/libpainter' failed
  - fatal: unable to access 'https://github.com/neutrinolabs/librfxcodec.git/': server certificate verification failed. CAfile: none CRLfile: none
  - fatal: clone of 'https://github.com/neutrinolabs/librfxcodec.git' into submodule path '/src/librfxcodec' failed
  - fatal: unable to access 'https://github.com/neutrinolabs/ulalaca-xrdp.git/': server certificate verification failed. CAfile: none CRLfile: none
  - fatal: clone of 'https://github.com/neutrinolabs/ulalaca-xrdp.git' into submodule path '/src/ulalaca' failed
  - autoreconf: configure.ac:661: error: required file 'ulalaca/Makefile.in' not found
  - autoreconf: automake failed with exit status: 1
  - The overall Docker build ended with: exit code 1

- Missing packages/files mentioned
  - Submodule clones failing for libpainter, librfxcodec, ulalaca (server certificate verification failed)
  - Missing file: ulalaca/Makefile.in (autoreconf/automake failure)

- Version mismatch / environment notes
  - Base image uses Ubuntu 22.04
  - The bundle of apt-get installs shows multiple GCC toolchain packages being upgraded/installed (e.g., gcc-12-base, libstdc++6, gcc-11, etc.), indicating a mixed/heterogeneous toolchain version set during the build

- Context / probable root cause
  - Submodule fetches fail due to TLS certificate verification (CAfile: none), preventing required submodules from being checked out, which leads to missing Makefile.in and subsequent autoreconf/automake failure.
WRITEWriteFile· step #14
0s
Dockerfile1024 bytes written
text32 lines · 1024 chars
FROM ubuntu:22.04 AS builder
ENV DEBIAN_FRONTEND=noninteractive

RUN apt-get update && apt-get install -y --no-install-recommends \
  ca-certificates \
  build-essential autoconf automake libtool pkg-config git \
  openssl libssl-dev libpam0g-dev libx11-dev libxfixes-dev libxrandr-dev libpixman-1-dev \
  libjpeg-dev libimlib2-dev fuse3 \
  && rm -rf /var/lib/apt/lists/*

WORKDIR /src
COPY . /src

# Build from source
RUN ./bootstrap && ./configure && make -j$(nproc) && make install

FROM ubuntu:22.04
ENV DEBIAN_FRONTEND=noninteractive

RUN apt-get update && apt-get install -y --no-install-recommends \
  ca-certificates libpam0g libx11-6 libxext6 libxfixes3 libxrandr2 libpixman-1-0 libglib2.0-0 libssl3 zlib1g \
  && rm -rf /var/lib/apt/lists/*

COPY --from=builder /usr/local /usr/local

RUN printf '%s\n' '#!/bin/sh' 'set -e' '' '/usr/local/sbin/xrdp-sesman &' 'SESMAN_PID=$!' '/usr/local/sbin/xrdp &' 'XRDP_PID=$!' 'wait $SESMAN_PID $XRDP_PID' > /start.sh \
  && chmod +x /start.sh

EXPOSE 3389

CMD ["/start.sh"]
VERIFYVerifyBuild· step #15
2m 02s
VerifyBuildbuild_failed
Build error
- Exact error message and exit code:
  - configure: error: please install libxkbfile-dev or libxkbfile-devel
  - Exit code: 1

- Failing command/step:
  - [builder 5/5] RUN ./bootstrap && ./configure && make -j$(nproc) && make install

- Missing packages or files mentioned:
  - libxkbfile-dev or libxkbfile-devel (developer headers for XKB)

- Version mismatch / environment info:
  - Base image context shows Ubuntu 22.04 (jammy) being used (FROM ubuntu:22.04), but the configure step failed due to a missing dev package (libxkbfile-dev/libxkbfile-devel) rather than a version mismatch.
WRITEWriteFile· step #16
0s
Dockerfile1057 bytes written
text35 lines · 1057 chars
FROM ubuntu:22.04 AS builder
ENV DEBIAN_FRONTEND=noninteractive

RUN apt-get update && apt-get install -y --no-install-recommends \
  ca-certificates \
  build-essential autoconf automake libtool pkg-config git \
  openssl libssl-dev libpam0g-dev libx11-dev libxfixes-dev libxrandr-dev libpixman-1-dev \
  libjpeg-dev libimlib2-dev fuse3 \
  libxkbfile-dev \
  && rm -rf /var/lib/apt/lists/*

WORKDIR /src
COPY . /src

# Build from source
RUN ./bootstrap && ./configure && make -j$(nproc) && make install

FROM ubuntu:22.04
ENV DEBIAN_FRONTEND=noninteractive

RUN apt-get update && apt-get install -y --no-install-recommends \
  ca-certificates libpam0g libx11-6 libxext6 libxfixes3 libxrandr2 libpixman-1-0 libglib2.0-0 libssl3 zlib1g \
  && rm -rf /var/lib/apt/lists/*

RUN ldconfig

COPY --from=builder /usr/local /usr/local

RUN printf '%s\n' '#!/bin/sh' 'set -e' '' '/usr/local/sbin/xrdp-sesman &' 'SESMAN_PID=$!' '/usr/local/sbin/xrdp &' 'XRDP_PID=$!' 'wait $SESMAN_PID $XRDP_PID' > /start.sh \
  && chmod +x /start.sh

EXPOSE 3389

CMD ["/start.sh"]
VERIFYVerifyBuild· step #17
1m 44s
VerifyBuildbuild_failed
Build error
- Exact error message and exit code
  - Exit code: 1
  - Error: configure: error: no nasm (Netwide Assembler) found

- Failing command/step
  - Failing step: [builder 5/5] RUN ./bootstrap && ./configure && make -j$(nproc) && make install
  - Dockerfile reference: the RUN line that builds from source (librfxcodec) invoked bootstrap, configure, make, install; the configure phase failed.

- Missing packages or files mentioned
  - nasm (Netwide Assembler) is not found in the build environment; required by librfxcodec configure.

- Version mismatch info
  - No explicit version mismatch reported. Base image is Ubuntu 22.04, with various GCC/libc-dev packages installed, but the failure is due to missing NASM.

- Remediation suggestion
  - Install NASM before running bootstrap/configure, e.g.: apt-get update && apt-get install -y nasm

Additional context
- The failure occurs during librfxcodec configuration within the librfxcodec submodule of the build.
WRITEWriteFile· step #18
0s
Dockerfile1066 bytes written
text36 lines · 1066 chars
FROM ubuntu:22.04 AS builder
ENV DEBIAN_FRONTEND=noninteractive

RUN apt-get update && apt-get install -y --no-install-recommends \
  ca-certificates \
  nasm \
  build-essential autoconf automake libtool pkg-config git \
  openssl libssl-dev libpam0g-dev libx11-dev libxfixes-dev libxrandr-dev libpixman-1-dev \
  libjpeg-dev libimlib2-dev fuse3 \
  libxkbfile-dev \
  && rm -rf /var/lib/apt/lists/*

WORKDIR /src
COPY . /src

# Build from source
RUN ./bootstrap && ./configure && make -j$(nproc) && make install

FROM ubuntu:22.04
ENV DEBIAN_FRONTEND=noninteractive

RUN apt-get update && apt-get install -y --no-install-recommends \
  ca-certificates libpam0g libx11-6 libxext6 libxfixes3 libxrandr2 libpixman-1-0 libglib2.0-0 libssl3 zlib1g \
  && rm -rf /var/lib/apt/lists/*

RUN ldconfig

COPY --from=builder /usr/local /usr/local

RUN printf '%s\n' '#!/bin/sh' 'set -e' '' '/usr/local/sbin/xrdp-sesman &' 'SESMAN_PID=$!' '/usr/local/sbin/xrdp &' 'XRDP_PID=$!' 'wait $SESMAN_PID $XRDP_PID' > /start.sh \
  && chmod +x /start.sh

EXPOSE 3389

CMD ["/start.sh"]
VERIFYVerifyBuild· step #19
2m 33s
VerifyBuildaccepted
Concerns: No HEALTHCHECK defined; adding a health check would help detect when the xrdp process dies, The startup script starts two processes in background and uses wait; if either crashes, container exits, which is typical but may hide issues; consider using a supervisor or ensure proper logging, Running as root with no non-root user; potential security improvement by adding a dedicated user
Smoke [PASS]: test -x /usr/local/sbin/xrdp-sesman && test -x /usr/local/sbin/xrdp
Smoke [PASS]: test -f /start.sh && [ -x /start.sh ]
Smoke [PASS]: ldd /usr/local/sbin/xrdp-sesman | head -n 5