Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

WIP - initial gentoo support (should fix #19) #20

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 32 additions & 0 deletions Dockerfile.emg
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
ARG DISTRO_NAME
ARG DISTRO_VERSION
FROM $DISTRO_NAME:$DISTRO_VERSION

LABEL maintainer="javier@netmanagers.com.ar"

ARG SALT_INSTALL_METHOD
ARG SALT_VERSION
ARG PYTHON_VERSION
ARG EXTRA_PACKAGES=""

ARG PKGS="udev git net-tools sudo curl openssh-server openssh-clients which findutils glibc-langpack-en $EXTRA_PACKAGES"

RUN echo 'ACCEPT_KEYWORDS="~amd64"' | tee -a /etc/portage/make.conf
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should avoid this.

  • Found the solution here, i.e.

    • echo 'ACCEPT_KEYWORDS="~amd64"' | tee -a /etc/portage/make.conf

Yeah, common pitfall, and a logical one too, however, from now entire "world" (all system packages + your installed packages) will now use the unstable branch (amd64 == stable / ~amd64 == unstable) and force an awful lot of rebuilds, if the package manager even is able to resolve it.

Replacing it with something based on:

Perhaps:

Suggested change
RUN echo 'ACCEPT_KEYWORDS="~amd64"' | tee -a /etc/portage/make.conf
RUN mkdir --p /etc/portage
RUN echo "=app-admin/salt ~amd64" >> /etc/portage/package.accept_keywords
  • Probably don't need the mkdir --p /etc/portage but just taking that from the referenced wiki page

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You are right, you should not need it, but it doesn't hurt either. However it could cover up a case where it is not available (which it should, because for example the system profile is defined/linked in there)
Rest looks fine.

RUN emerge-webrsync \
&& emerge -u system \
&& emerge -u world

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think you should skip updating @System or @world.
We want to test salt and not gentoo and it is a bit of a anti pattern in docker.


RUN emerge --getbinpkg ${PKGS}

# Setting this var makes the bootstrap install from binaries
ENV BS_GENTOO_USE_BINHOST=1
# https://bugs.gentoo.org/684992
RUN if [ ${SALT_INSTALL_METHOD} = "stable" ];
then SALT_VERSION = ""; \
fi; \
curl -L https://raw.githubusercontent.com/saltstack/salt-bootstrap/develop/bootstrap-salt.sh | \

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Unless the bootstrap script supports gentoo well, I'd use portage/emerge itself to install salt.

sudo sh -s -- -XUdfP -x python$PYTHON_VERSION $SALT_INSTALL_METHOD $SALT_VERSION

RUN rm -rf /var/cache/{salt,pacman} \
&& (find / -name "*pyc" ; find / -name "__pycache__") |grep -v /proc | xargs rm -rf