Use smaller admin image for CI
This commit is contained in:
parent
be8133ee71
commit
e43b16bd12
4
Makefile
4
Makefile
|
@ -28,7 +28,7 @@ image:
|
|||
@: $${I}
|
||||
ifeq ($(I),composite)
|
||||
node tools/build-composite-image.js
|
||||
else ifeq ($(I),admin)
|
||||
else ifneq (,$(filter $(I),admin ci))
|
||||
docker build . -f docker/$(I)/Dockerfile -t riju:$(I)
|
||||
else
|
||||
docker build . -f docker/$(I)/Dockerfile -t riju:$(I) --label riju.image-hash=$(shell node tools/hash-dockerfile.js $(I))
|
||||
|
@ -69,7 +69,7 @@ endif
|
|||
.PHONY: shell
|
||||
shell:
|
||||
@: $${I}
|
||||
ifeq ($(I),admin)
|
||||
ifneq (,$(filter $(I),admin ci))
|
||||
docker run -it --rm --hostname $(I) -v $(VOLUME_MOUNT):/src -v /var/run/docker.sock:/var/run/docker.sock -v $(HOME)/.aws:/var/riju/.aws -v $(HOME)/.docker:/var/riju/.docker -v $(HOME)/.ssh:/var/riju/.ssh -v $(HOME)/.terraform.d:/var/riju/.terraform.d -e AWS_REGION -e AWS_ACCESS_KEY_ID -e AWS_SECRET_ACCESS_KEY -e DOCKER_USERNAME -e DOCKER_PASSWORD -e DEPLOY_SSH_PRIVATE_KEY -e DOCKER_REPO -e S3_BUCKET -e DOMAIN -e VOLUME_MOUNT=$(VOLUME_MOUNT) $(SHELL_PORTS) --network host riju:$(I) $(CMD)
|
||||
else ifneq (,$(filter $(I),compile app))
|
||||
docker run -it --rm --hostname $(I) $(SHELL_PORTS) riju:$(I) $(CMD)
|
||||
|
|
|
@ -4,6 +4,7 @@ COPY docker/admin/install.bash /tmp/
|
|||
RUN /tmp/install.bash
|
||||
|
||||
WORKDIR /src
|
||||
COPY docker/shared/my_init docker/admin/pid1.bash /usr/local/sbin/
|
||||
COPY docker/shared/my_init /usr/local/sbin/
|
||||
COPY docker/shared/admin-pid1.bash /usr/local/sbin/pid1.bash
|
||||
ENTRYPOINT ["/usr/local/sbin/my_init", "/usr/local/sbin/pid1.bash"]
|
||||
CMD ["bash"]
|
||||
|
|
|
@ -55,7 +55,7 @@ apt-get update
|
|||
apt-get install -y $(sed 's/#.*//' <<< "${packages}")
|
||||
|
||||
wget https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip -O awscli.zip
|
||||
unzip awscli.zip
|
||||
unzip -q awscli.zip
|
||||
./aws/install
|
||||
rm -rf aws awscli.zip
|
||||
|
||||
|
|
|
@ -0,0 +1,10 @@
|
|||
FROM ubuntu:rolling
|
||||
|
||||
COPY docker/ci/install.bash /tmp/
|
||||
RUN /tmp/install.bash
|
||||
|
||||
WORKDIR /src
|
||||
COPY docker/shared/my_init /usr/local/sbin/
|
||||
COPY docker/shared/admin-pid1.bash /usr/local/sbin/pid1.bash
|
||||
ENTRYPOINT ["/usr/local/sbin/my_init", "/usr/local/sbin/pid1.bash"]
|
||||
CMD ["bash"]
|
|
@ -0,0 +1,60 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
set -euxo pipefail
|
||||
|
||||
pushd /tmp
|
||||
|
||||
export DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
apt-get update
|
||||
apt-get install -y curl gnupg lsb-release
|
||||
|
||||
curl -fsSL https://deb.nodesource.com/gpgkey/nodesource.gpg.key | apt-key add -
|
||||
curl -fsSL https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add -
|
||||
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add -
|
||||
|
||||
ubuntu_ver="$(lsb_release -rs)"
|
||||
ubuntu_name="$(lsb_release -cs)"
|
||||
|
||||
node_repo="$(curl -sS https://deb.nodesource.com/setup_current.x | grep NODEREPO= | grep -Eo 'node_[0-9]+\.x' | head -n1)"
|
||||
|
||||
tee -a /etc/apt/sources.list.d/custom.list >/dev/null <<EOF
|
||||
deb [arch=amd64] https://deb.nodesource.com/${node_repo} ${ubuntu_name} main
|
||||
deb [arch=amd64] https://dl.yarnpkg.com/debian/ stable main
|
||||
deb [arch=amd64] https://download.docker.com/linux/ubuntu ${ubuntu_name} stable
|
||||
EOF
|
||||
|
||||
packages="
|
||||
|
||||
docker-ce-cli
|
||||
g++
|
||||
git
|
||||
jq
|
||||
make
|
||||
nodejs
|
||||
skopeo
|
||||
ssh
|
||||
sudo
|
||||
unzip
|
||||
wget
|
||||
yarn
|
||||
|
||||
"
|
||||
|
||||
apt-get update
|
||||
apt-get install -y $(sed 's/#.*//' <<< "${packages}")
|
||||
|
||||
wget https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip -O awscli.zip
|
||||
unzip -q awscli.zip
|
||||
./aws/install
|
||||
rm -rf aws awscli.zip
|
||||
|
||||
rm -rf /var/lib/apt/lists/*
|
||||
|
||||
tee /etc/sudoers.d/90-riju >/dev/null <<"EOF"
|
||||
%sudo ALL=(ALL:ALL) NOPASSWD: ALL
|
||||
EOF
|
||||
|
||||
popd
|
||||
|
||||
rm "$0"
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
set -euo pipefail
|
||||
|
||||
tee -a /etc/hosts >/dev/null <<< "127.0.0.1 admin"
|
||||
tee -a /etc/hosts >/dev/null <<< "127.0.0.1 $(hostname)"
|
||||
|
||||
groupadd -g "$(stat -c %g "$PWD")" -o -p '!' -r riju
|
||||
useradd -u "$(stat -c %u "$PWD")" -g "$(stat -c %g "$PWD")" -o -p '!' -m -N -l -s /usr/bin/bash -G sudo riju
|
|
@ -11,4 +11,4 @@ set -euo pipefail
|
|||
: ${DOMAIN}
|
||||
: ${S3_BUCKET}
|
||||
|
||||
make image shell I=admin CMD="tools/ci-run.bash"
|
||||
make image shell I=ci CMD="tools/ci-run.bash"
|
||||
|
|
Loading…
Reference in New Issue