1

I recently upgraded my application to rocket v0.5-rc2 and I'm encountering new errors where the linker fails to find crti.o

ARG BINARY_NAME=rocketdieselstack
FROM rust:alpine3.16 as builder

RUN rustup update nightly && rustup default nightly
#install dev packages
RUN apk add pcc-libs-dev

#get the sources
ADD  --chown=rust:rust . ./

#build container
RUN cargo build --release

#remove sources
RUN rm src/*.rs

FROM alpine:latest

#environment setup
ARG APP=/usr/src/app
EXPOSE 8000
ENV TZ=Etc/UTC \
    APP_USER=appuser

RUN addgroup -S $APP_USER \
    && adduser -S -g $APP_USER $APP_USER
RUN apk update \
    && apk add --no-cache ca-certificates tzdata bash\
    && rm -rf /var/cache/apk/*
#add group and create directory
RUN mkdir -p ${APP}


COPY --from=builder /home/rust/src/target/x86_64-unknown-linux-musl/release/${BINARY_NAME} ${APP}/${BINARY_NAME}
RUN chown -R $APP_USER:$APP_USER ${APP}

USER ${APP_USER}

WORKDIR ${APP}
CMD ["./rocketdieselstack"]
#14 ERROR: executor failed running [/bin/sh -c cargo build --release]: exit code: 101
------
 > [builder 5/6] RUN cargo build --release:
#14 185.1 error: linking with `cc` failed: exit status: 1
#14 185.1   |
#14 185.1   = note: "cc" "-Wl,--version-script=/tmp/rustcyfX4Hz/list" "-m64" "/tmp/rustcyfX4Hz/symbols.o" "/target/release/deps/time_macros-36b840665dbccb38.time_macros.6a053ec9-cgu.0.rcgu.o" "/target/release/deps/time_macros-36b840665dbccb38.time_macros.6a053ec9-cgu.1.rcgu.o" "/target/release/deps/time_macros-36b840665dbccb38.time_macros.6a053ec9-cgu.10.rcgu.o" "/target/release/deps/time_macros-36b840665dbccb38.time_macros.6a053ec9-cgu.11.rcgu.o" "/target/release/deps/time_macros-36b840665dbccb38.time_macros.6a053ec9-cgu.12.rcgu.o" "/target/release/deps/time_macros-36b840665dbccb38.time_macros.6a053ec9-cgu.13.rcgu.o" "/target/release/deps/time_macros-36b840665dbccb38.time_macros.6a053ec9-cgu.14.rcgu.o" "/target/release/deps/time_macros-36b840665dbccb38.time_macros.6a053ec9-cgu.15.rcgu.o" "/target/release/deps/time_macros-36b840665dbccb38.time_macros.6a053ec9-cgu.2.rcgu.o" "/target/release/deps/time_macros-36b840665dbccb38.time_macros.6a053ec9-cgu.3.rcgu.o" "/target/release/deps/time_macros-36b840665dbccb38.time_macros.6a053ec9-cgu.4.rcgu.o" "/target/release/deps/time_macros-36b840665dbccb38.time_macros.6a053ec9-cgu.5.rcgu.o" "/target/release/deps/time_macros-36b840665dbccb38.time_macros.6a053ec9-cgu.6.rcgu.o" "/target/release/deps/time_macros-36b840665dbccb38.time_macros.6a053ec9-cgu.7.rcgu.o" "/target/release/deps/time_macros-36b840665dbccb38.time_macros.6a053ec9-cgu.8.rcgu.o" "/target/release/deps/time_macros-36b840665dbccb38.time_macros.6a053ec9-cgu.9.rcgu.o" "/target/release/deps/time_macros-36b840665dbccb38.l99mem4h8qnkc7l.rcgu.rmeta" "/target/release/deps/time_macros-36b840665dbccb38.20ut393qpf368ke7.rcgu.o" "-Wl,--as-needed" "-L" "/target/release/deps" "-L" "/usr/local/rustup/toolchains/nightly-x86_64-unknown-linux-musl/lib/rustlib/x86_64-unknown-linux-musl/lib" "-Wl,-Bstatic" "/target/release/deps/libtime_core-9ddb6f3f24d01edc.rlib" "/usr/local/rustup/toolchains/nightly-x86_64-unknown-linux-musl/lib/rustlib/x86_64-unknown-linux-musl/lib/libproc_macro-588543a9e0c643c7.rlib" "/usr/local/rustup/toolchains/nightly-x86_64-unknown-linux-musl/lib/rustlib/x86_64-unknown-linux-musl/lib/libstd-9a12cfbeba7f849b.rlib" "/usr/local/rustup/toolchains/nightly-x86_64-unknown-linux-musl/lib/rustlib/x86_64-unknown-linux-musl/lib/libpanic_unwind-a0c5539a64e36c9b.rlib" "/usr/local/rustup/toolchains/nightly-x86_64-unknown-linux-musl/lib/rustlib/x86_64-unknown-linux-musl/lib/libobject-757e2a6d980acd3d.rlib" "/usr/local/rustup/toolchains/nightly-x86_64-unknown-linux-musl/lib/rustlib/x86_64-unknown-linux-musl/lib/libmemchr-dd51104458a78bfe.rlib" "/usr/local/rustup/toolchains/nightly-x86_64-unknown-linux-musl/lib/rustlib/x86_64-unknown-linux-musl/lib/libaddr2line-7d06a7f23aaba986.rlib" "/usr/local/rustup/toolchains/nightly-x86_64-unknown-linux-musl/lib/rustlib/x86_64-unknown-linux-musl/lib/libgimli-424a023dec10ebd7.rlib" "/usr/local/rustup/toolchains/nightly-x86_64-unknown-linux-musl/lib/rustlib/x86_64-unknown-linux-musl/lib/librustc_demangle-fd168531e67dfcc1.rlib" "/usr/local/rustup/toolchains/nightly-x86_64-unknown-linux-musl/lib/rustlib/x86_64-unknown-linux-musl/lib/libstd_detect-33fb96cef5ac2034.rlib" "/usr/local/rustup/toolchains/nightly-x86_64-unknown-linux-musl/lib/rustlib/x86_64-unknown-linux-musl/lib/libcfg_if-986b2bebdf65a59c.rlib" "/usr/local/rustup/toolchains/nightly-x86_64-unknown-linux-musl/lib/rustlib/x86_64-unknown-linux-musl/lib/libhashbrown-ccb2619847e206d4.rlib" "/usr/local/rustup/toolchains/nightly-x86_64-unknown-linux-musl/lib/rustlib/x86_64-unknown-linux-musl/lib/libminiz_oxide-542101ebdc5c7058.rlib" "/usr/local/rustup/toolchains/nightly-x86_64-unknown-linux-musl/lib/rustlib/x86_64-unknown-linux-musl/lib/libadler-2c97d3d56981f1eb.rlib" "/usr/local/rustup/toolchains/nightly-x86_64-unknown-linux-musl/lib/rustlib/x86_64-unknown-linux-musl/lib/librustc_std_workspace_alloc-14dc8f6486e6420e.rlib" "/usr/local/rustup/toolchains/nightly-x86_64-unknown-linux-musl/lib/rustlib/x86_64-unknown-linux-musl/lib/libunwind-cc1bf8d592a66e09.rlib" "/usr/local/rustup/toolchains/nightly-x86_64-unknown-linux-musl/lib/rustlib/x86_64-unknown-linux-musl/lib/libcfg_if-02573f01cff6ca67.rlib" "/usr/local/rustup/toolchains/nightly-x86_64-unknown-linux-musl/lib/rustlib/x86_64-unknown-linux-musl/lib/liblibc-1bcc47b75ba242d4.rlib" "/usr/local/rustup/toolchains/nightly-x86_64-unknown-linux-musl/lib/rustlib/x86_64-unknown-linux-musl/lib/liballoc-f1b8aa317d3523b4.rlib" "/usr/local/rustup/toolchains/nightly-x86_64-unknown-linux-musl/lib/rustlib/x86_64-unknown-linux-musl/lib/librustc_std_workspace_core-9e83db0936cfd878.rlib" "/usr/local/rustup/toolchains/nightly-x86_64-unknown-linux-musl/lib/rustlib/x86_64-unknown-linux-musl/lib/libcore-7940b050ca7b2e65.rlib" "/usr/local/rustup/toolchains/nightly-x86_64-unknown-linux-musl/lib/rustlib/x86_64-unknown-linux-musl/lib/libcompiler_builtins-cfd87d411551e5c1.rlib" "-Wl,-Bdynamic" "-lgcc_s" "-lc" "-Wl,--eh-frame-hdr" "-Wl,-znoexecstack" "-L" "/usr/local/rustup/toolchains/nightly-x86_64-unknown-linux-musl/lib/rustlib/x86_64-unknown-linux-musl/lib" "-o" "/target/release/deps/libtime_macros-36b840665dbccb38.so" "-Wl,--gc-sections" "-shared" "-Wl,-zrelro,-znow" "-nodefaultlibs"
#14 185.1   = note: /usr/lib/gcc/x86_64-alpine-linux-musl/11.2.1/../../../../x86_64-alpine-linux-musl/bin/ld: cannot find crti.o: No such file or directory
#14 185.1           collect2: error: ld returned 1 exit status
#14 185.1           
#14 185.1 
#14 185.1    Compiling parking_lot v0.12.1
#14 185.2 error: could not compile `time-macros` due to previous error
#14 185.2 warning: build failed, waiting for other jobs to finish...
------
crlsktr
  • 105
  • 1
  • 15
  • Can you try installing the `build-base` package? `apk add build-base` – PitaJ Nov 03 '22 at 20:19
  • 1
    Or maybe installing [`musl-dev`](https://pkgs.alpinelinux.org/contents?file=crti.o&path=&name=&branch=v3.6&arch=x86_64). – rodrigo Nov 03 '22 at 20:23

1 Answers1

0

In this case I needed to also install musl-dev.

RUN apk add --no-cache pcc-libs-dev musl-dev pkgconfig openssl-dev

Having said that, please also notice that rocket.rs v0.5-rc2 also required me to install pkgconfig and openssl-dev thanks for the help! @rodrigo

crlsktr
  • 105
  • 1
  • 15