
- Use https for redox apt repository - Import the repository's key - Update [toolchain packages' names](https://github.com/redox-os/cookbook/pull/59) - Install `wget` which is needed by [coobook/recipes/xz](https://github.com/redox-os/cookbook/blob/master/recipes/xz/recipe.sh) - Update README file to reflect the [discussion about when the submodules are needed](https://github.com/redox-os/redox/pull/1005#discussion_r129432929) - Update README file to suggest using `make fetch all` in place of `make update all` since `Cargo.lock` files come with the sources now. See this [comment](https://github.com/redox-os/redox/issues/1021#issuecomment-320946322) Note: current source tree generation requires runing the docker container with `bash -c RUSTFLAGS=\"-A unused_mut\" make fetch all` in place of `make fetch all`
46 lines
1.7 KiB
Docker
Executable file
46 lines
1.7 KiB
Docker
Executable file
FROM ubuntu:17.04
|
|
|
|
ENV REDOX_TOOLCHAIN_APT https://static.redox-os.org/toolchain/apt/
|
|
|
|
ENV USER user
|
|
ARG LOCAL_UID=local
|
|
ARG LOCAL_GID=local
|
|
ENV BUILD_UID=${LOCAL_UID:-9001}
|
|
ENV BUILD_GID=${LOCAL_GID:-9001}
|
|
|
|
RUN apt-get update \
|
|
&& apt-get install -y dirmngr git gosu gcc fuse nasm qemu-utils pkg-config \
|
|
libfuse-dev make curl wget file sudo apt-transport-https autoconf flex \
|
|
bison texinfo \
|
|
&& apt-key adv --fetch-keys https://static.redox-os.org/toolchain/apt/keyFile \
|
|
&& echo "deb $REDOX_TOOLCHAIN_APT /" >> /etc/apt/sources.list.d/redox.list \
|
|
&& apt-get update -o Dir::Etc::sourcelist="redox.list" \
|
|
&& apt-get install -y x86-64-unknown-redox-newlib x86-64-unknown-redox-binutils x86-64-unknown-redox-gcc \
|
|
&& groupadd -g $BUILD_GID user \
|
|
&& useradd --shell /bin/bash -u $BUILD_UID -g $BUILD_GID -o -c "" -m $USER \
|
|
&& echo "$USER ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/user-no-sudo-password
|
|
|
|
COPY entrypoint.sh /usr/local/bin/entrypoint.sh
|
|
RUN chmod +x /usr/local/bin/entrypoint.sh
|
|
|
|
USER $USER
|
|
ENV HOME /home/$USER
|
|
ENV PATH $HOME/.cargo/bin:$PATH
|
|
ENV SRC_PATH $HOME/src
|
|
WORKDIR $HOME
|
|
RUN curl https://sh.rustup.rs > sh.rustup.rs \
|
|
&& sh sh.rustup.rs -y \
|
|
&& rustup update \
|
|
&& rustup component add rust-src \
|
|
&& rustup default nightly \
|
|
&& curl -O https://ftp.gnu.org/gnu/automake/automake-1.15.1.tar.gz \
|
|
&& tar -xvpf automake-1.15.1.tar.gz; cd automake-1.15.1; ./configure; make; sudo make install; cd .. \
|
|
&& cargo install xargo \
|
|
&& cargo install cargo-config \
|
|
&& mkdir -p $SRC_PATH
|
|
|
|
WORKDIR $SRC_PATH
|
|
USER root
|
|
|
|
ENTRYPOINT ["/usr/local/bin/entrypoint.sh"]
|