feat: first working alpine docker container of self
This commit is contained in:
+32
-88
@@ -1,103 +1,47 @@
|
||||
# FROM debian:bullseye-slim
|
||||
# FROM
|
||||
FROM alpine:latest
|
||||
# FROM scratch
|
||||
#############
|
||||
## Builder ##
|
||||
#############
|
||||
|
||||
# DOCKER_GUID=1000 \
|
||||
# DOCKER_UID=1000 \
|
||||
# DOCKER_TIME_CONT=America \
|
||||
# DOCKER_TIME_CITY=New_York \
|
||||
# ARG DOCKER_APP_USER=oxker \
|
||||
# DOCKER_APP_GROUP=docker
|
||||
FROM rust:1.63.0-slim as builder
|
||||
|
||||
# ENV TZ=${DOCKER_TIME_CONT}/${DOCKER_TIME_CITY}
|
||||
WORKDIR /usr/src
|
||||
|
||||
# RUN apt-get update \
|
||||
# && apt-get install -y ca-certificates wget \
|
||||
# && update-ca-certificates \
|
||||
# RUN groupadd ${DOCKER_APP_GROUP}
|
||||
# RUN useradd --no-create-home --no-log-init ${DOCKER_APP_USER}
|
||||
# && mkdir /healthcheck /logs \
|
||||
# && chown ${DOCKER_APP_USER}:${DOCKER_APP_GROUP} /logs
|
||||
# Create blank project
|
||||
RUN USER=root cargo new oxker
|
||||
|
||||
WORKDIR /app
|
||||
# We want dependencies cached, so copy those first.
|
||||
COPY Cargo.toml Cargo.lock /usr/src/oxker/
|
||||
|
||||
# COPY --chown=${DOCKER_APP_USER}:${DOCKER_APP_GROUP} docker/healthcheck/health_api.sh /healthcheck
|
||||
# Set the working directory
|
||||
WORKDIR /usr/src/oxker
|
||||
|
||||
# Copy from local release destination
|
||||
# COPY --chown=${DOCKER_APP_USER} target/release/oxker /app/
|
||||
# COPY target/release/oxker .
|
||||
# RUN mkdir app
|
||||
COPY /target/x86_64-unknown-linux-musl/release/oxker ./
|
||||
COPY ./start_oxker.sh ./
|
||||
RUN chmod +x /app/start_oxker.sh
|
||||
## Install target platform (Cross-Compilation) --> Needed for Alpine
|
||||
RUN rustup target add x86_64-unknown-linux-musl
|
||||
|
||||
# Use an unprivileged user
|
||||
# USER ${DOCKER_APP_USER}
|
||||
ENV RUST_BACKTRACE=full
|
||||
# ENTRYPOINT ["./oxker" ]
|
||||
# CMD [ "./oxker"]
|
||||
ENTRYPOINT ["/app/start_oxker.sh"]
|
||||
# This is a dummy build to get the dependencies cached.
|
||||
RUN cargo build --target x86_64-unknown-linux-musl --release
|
||||
|
||||
# docker run --rm -ti \
|
||||
# --name=ctop \
|
||||
# --volume /var/run/docker.sock:/var/run/docker.sock:ro \
|
||||
# # quay.io/vektorlab/ctop:latest
|
||||
# Now copy in the rest of the sources
|
||||
COPY src /usr/src/oxker/src/
|
||||
|
||||
## Touch main.rs to prevent cached release build
|
||||
RUN touch /usr/src/oxker/src/main.rs
|
||||
|
||||
# docker run --rm -it --volume /var/run/docker.sock:/var/run/docker.sock:ro oxker
|
||||
# This is the actual application build.
|
||||
RUN cargo build --target x86_64-unknown-linux-musl --release
|
||||
|
||||
# docker run --rm -it --volume /var/run/docker.sock:/var/run/docker.sock:ro ghcr.io/mrjackwills/oxker:latest
|
||||
# could get arch, and then download appropoatley from github?
|
||||
#############
|
||||
## Runtime ##
|
||||
#############
|
||||
|
||||
# FROM rust:latest as cargo-build
|
||||
FROM alpine:latest AS runtime
|
||||
|
||||
# WORKDIR /build
|
||||
# ENV RUSTFLAGS="-C target-feature=+crt-static"
|
||||
# Copy application binary from builder image
|
||||
COPY --from=builder /usr/src/oxker/target/x86_64-unknown-linux-musl/release/oxker /usr/local/bin
|
||||
COPY start_oxker.sh ./
|
||||
RUN chmod +x /start_oxker.sh
|
||||
|
||||
# COPY Cargo* ./build
|
||||
# COPY src/ ./build
|
||||
# Run the application
|
||||
ENTRYPOINT [ "./start_oxker.sh"]
|
||||
|
||||
# RUN cargo build --release --target x86_64-unknown-linux-gnu
|
||||
|
||||
# #####################################
|
||||
|
||||
|
||||
# #####################################
|
||||
|
||||
# FROM scratch
|
||||
|
||||
# COPY --from=cargo-build /build/target/x86_64-unknown-linux-gnu/release/oxker /oxker
|
||||
|
||||
# ENTRYPOINT [ "/oxker" ]
|
||||
|
||||
# FROM rust:latest AS build
|
||||
# WORKDIR /oxker_build
|
||||
|
||||
# # Download the target for static linking.
|
||||
# RUN rustup target add x86_64-unknown-linux-musl
|
||||
|
||||
# # Create a dummy project and build the app's dependencies.
|
||||
# # If the Cargo.toml or Cargo.lock files have not changed,
|
||||
# # we can use the docker build cache and skip these (typically slow) steps.
|
||||
# RUN USER=root cargo new oxker --bin
|
||||
# WORKDIR /oxker_build
|
||||
# COPY Cargo.toml Cargo.lock ./
|
||||
# # CMD ["sleep", "6000"]
|
||||
|
||||
# # RUN cargo build --release
|
||||
|
||||
# # Copy the source and build the application.
|
||||
# COPY src ./src/
|
||||
# RUN cargo install --target x86_64-unknown-linux-musl --path .
|
||||
|
||||
# # Copy the statically-linked binary into a scratch container.
|
||||
# FROM scratch
|
||||
# COPY --from=build /oxker_build/bin/oxker .
|
||||
# # USER 1000
|
||||
# CMD ["./oxker"]
|
||||
|
||||
# cross build --target x86_64-unknown-linux-musl --release
|
||||
|
||||
# rustup target add x86_64-unknown-linux-musl
|
||||
# cargo build --release --target=x86_64-unknown-linux-musl
|
||||
# docker run --rm -it --volume /var/run/docker.sock:/var/run/docker.sock:ro oxker
|
||||
+3
-3
@@ -1,7 +1,7 @@
|
||||
#!/bin/sh
|
||||
set -e
|
||||
|
||||
# No idea why this is sloving my issue, or even where the issue is originally coming from
|
||||
sleep 1
|
||||
# No idea why this is solving my issue, or even where the issue is originally coming from
|
||||
sleep .1
|
||||
|
||||
exec ./oxker "$@"
|
||||
exec /usr/local/bin/oxker "$@"
|
||||
Reference in New Issue
Block a user