-
Notifications
You must be signed in to change notification settings - Fork 2
/
Dockerfile
40 lines (27 loc) · 1.35 KB
/
Dockerfile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
FROM ubuntu:22.04
# install deps
RUN apt-get update && apt-get install -y --no-install-recommends file ca-certificates wget git pkg-config libasound2 libjack-jackd2-dev libasound2-dev libssl-dev libxcb-render0-dev libxcb-shape0-dev libxcb-xfixes0-dev libxkbcommon-dev libgtk-3-0 libgtk-3-dev curl build-essential
# fix cert
RUN update-ca-certificates
# install rust
RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
# configure shell
ENV PATH="/root/.cargo/bin:${PATH}"
# install cargo-appimage
RUN cargo install cargo-appimage # file package is required by appimagetool
# switch to nightly
RUN rustup default nightly
# latest version
RUN rustup update
# download appimagetool
RUN wget https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-$(uname -m).AppImage -O /usr/local/bin/appimagetool
# apply hacks
RUN chmod +x /usr/local/bin/appimagetool # Path appimagetool magic byte: https://github.com/AppImage/pkg2appimage/issues/373#issuecomment-495754112
# apply hacks
RUN sed -i 's|AI\x02|\x00\x00\x00|' /usr/local/bin/appimagetool # Use appimagetool without fuse: https://github.com/AppImage/AppImageKit/wiki/FUSE#docker
# get megra
RUN git clone https://github.com/the-drunk-coder/megra.rs
# latest stuff
RUN cd megra.rs && cargo update
# build appimage
RUN cd megra.rs && APPIMAGE_EXTRACT_AND_RUN=1 cargo appimage