All checks were successful
Create and publish a Docker image / build-and-push-image (push) Successful in 5m38s
53 lines
1.6 KiB
Docker
53 lines
1.6 KiB
Docker
######################################################
|
|
# BUILD IMAGE
|
|
######################################################
|
|
FROM docker.io/swift:latest as build
|
|
|
|
RUN export DEBIAN_FRONTEND=noninteractive DEBCONF_NONINTERACTIVE_SEEN=true \
|
|
&& apt-get -q update \
|
|
&& apt-get -q dist-upgrade -y \
|
|
&& apt-get -q install -y \
|
|
cmake \
|
|
rustup \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
# Build and install starship, bob, and neovim.
|
|
RUN rustup default stable \
|
|
&& cargo install starship --locked \
|
|
&& cargo install --git https://github.com/MordechaiHadad/bob.git \
|
|
&& /root/.cargo/bin/bob install nightly \
|
|
&& /root/.cargo/bin/bob use nightly
|
|
|
|
######################################################
|
|
# RUN IMAGE
|
|
######################################################
|
|
FROM docker.io/swift:latest
|
|
|
|
RUN export DEBIAN_FRONTEND=noninteractive DEBCONF_NONINTERACTIVE_SEEN=true \
|
|
&& apt-get -q update \
|
|
&& apt-get -q dist-upgrade -y \
|
|
&& apt-get -q install -y \
|
|
curl \
|
|
direnv \
|
|
eza \
|
|
fzf \
|
|
ripgrep \
|
|
zsh \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
# Remove the ubuntu user, if it exists, so we can create the "swift" user.
|
|
RUN touch /var/mail/ubuntu && chown ubuntu /var/mail/ubuntu && userdel -r ubuntu || true
|
|
|
|
# Create the "swift" user
|
|
RUN groupadd --gid 1000 swift \
|
|
&& useradd -s /bin/zsh --uid 1000 --gid 1000 -m swift
|
|
|
|
# Copy dependencies from build image.
|
|
COPY --from=build /root/.cargo/bin/starship /usr/local/bin/starship
|
|
COPY --from=build /root/.cargo/bin/bob /home/swift/.local/bin/bob
|
|
COPY --from=build /root/.local/share/bob /home/swift/.local/share/bob
|
|
RUN chown -R swift:swift /home/swift/.local
|
|
|
|
USER swift
|
|
|