mirror of
https://github.com/ovh/the-bastion.git
synced 2024-12-28 11:13:10 +08:00
c201f44d83
The chain of executions is as is: - `docker_build_and_run_tests_all.sh` - launches several instances of `docker_build_and_run_tests.sh` - builds docker images with the `target_role.sh` and `tester_role.sh` entrypoints - inside the tester docker, `tester_role.sh` launches `launch_tests_on_instance.sh` - the target docker gets tested after setting up accounts, SSH etc. Previously, these scripts passed options to each other either by a mix of environment variables and command-line arguments, with some inconsistencies here and there. Now, `launch_tests_on_instance.sh` supports a lot of command-line options, which can be specified directly if testing a remote server, or can be passed-through by the calling script in case of docker tests. `docker_build_and_run_tests.sh` and `docker_build_and_run_tests_all.sh` also support to passthrough these options down.
30 lines
1.3 KiB
Text
30 lines
1.3 KiB
Text
FROM ubuntu:20.04
|
|
LABEL maintainer="stephane.lesimple+bastion@ovhcloud.com"
|
|
|
|
# cache builds efficiently: just copy the scripts to install packages first
|
|
COPY bin/admin/install-ttyrec.sh bin/admin/install-yubico-piv-checker.sh bin/admin/packages-check.sh /opt/bastion/bin/admin/
|
|
COPY lib/shell /opt/bastion/lib/shell/
|
|
RUN ["/opt/bastion/bin/admin/packages-check.sh","-i","-d","-s"]
|
|
RUN ["/opt/bastion/bin/admin/install-ttyrec.sh","-d"]
|
|
RUN ["/opt/bastion/bin/admin/install-yubico-piv-checker.sh","-d"]
|
|
|
|
# handle locales
|
|
RUN echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen && locale-gen
|
|
|
|
# disable /dev/kmsg handling by syslog-ng and explicitly enable /dev/log
|
|
RUN test -e /etc/syslog-ng/syslog-ng.conf && \
|
|
sed -i -re 's=system\(\);=unix-stream("/dev/log");=' /etc/syslog-ng/syslog-ng.conf
|
|
|
|
# at each modification of our code, we'll start from here thanks to build cache
|
|
COPY . /opt/bastion
|
|
|
|
# tests that the environment works
|
|
RUN ["/opt/bastion/bin/dev/perl-check.sh"]
|
|
|
|
# setup ssh/sshd config and setup bastion install
|
|
RUN ["/opt/bastion/bin/admin/install","--new-install"]
|
|
|
|
# start at entrypoint
|
|
ENTRYPOINT /opt/bastion/docker/entrypoint.sh
|
|
|
|
# TESTOPT --has-mfa=1 --has-pamtester=1 --has-piv=1
|