From 4e032aaecb4fd8eeb0bc3a22bd098f77412c16db Mon Sep 17 00:00:00 2001 From: Radon Rosborough Date: Sun, 17 Jan 2021 11:56:57 -0800 Subject: [PATCH] Deal with some DNS garbage Apparently, my laptop was using 75.75.75.75 from Comcast as one of its DNS servers, and unfortunately that server was totally broken (dig @75.75.75.75 never returned results). I had to edit /etc/systemd/resolved.conf to override DNS=8.8.8.8, then things worked again. How DNS resolution worked at all outside of Docker was unclear to me, but overriding 75.75.75.75 makes it work inside as well (when not operating in --network=host mode). --- Makefile | 16 +++++++++++----- docker/admin/install.bash | 1 + docker/packaging/Dockerfile | 2 +- docker/packaging/install.bash | 1 + docker/packaging/pid1.bash | 2 +- docker/runtime/Dockerfile | 2 +- docker/runtime/install.bash | 1 + docker/runtime/pid1.bash | 2 +- 8 files changed, 18 insertions(+), 9 deletions(-) diff --git a/Makefile b/Makefile index 86b11e9..e2ee72e 100644 --- a/Makefile +++ b/Makefile @@ -12,6 +12,12 @@ S3_DEBS := s3://$(S3_BUCKET)-debs S3_DEB := $(S3_DEBS)/debs/$(DEB) S3_HASH := $(S3_DEBS)/hashes/riju-$(T)-$(L) +ifneq ($(CMD),) +BASH_CMD := bash -c '$(CMD)' +else +BASH_CMD := +endif + .PHONY: all $(MAKECMDGOALS) help: @@ -60,7 +66,7 @@ pkg-clean: pkg-build: @: $${L} $${T} - cd $(BUILD)/src && pkg="$(PWD)/$(BUILD)/pkg" src="$(PWD)/$(BUILD)/src" $(or $(CMD),../build.bash) + cd $(BUILD)/src && pkg="$(PWD)/$(BUILD)/pkg" src="$(PWD)/$(BUILD)/src" $(or $(BASH_CMD),../build.bash) pkg-debug: @: $${L} $${T} @@ -107,13 +113,13 @@ endif shell: @: $${I} 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) + 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) $(BASH_CMD) else ifneq (,$(filter $(I),compile app)) - docker run -it --rm --hostname $(I) $(SHELL_PORTS) riju:$(I) $(CMD) + docker run -it --rm --hostname $(I) $(SHELL_PORTS) riju:$(I) $(BASH_CMD) else ifneq (,$(filter $(I),runtime composite)) - docker run -it --rm --hostname $(I) -v $(VOLUME_MOUNT):/src --label riju-install-target=yes $(SHELL_PORTS) riju:$(I) $(CMD) + docker run -it --rm --hostname $(I) -v $(VOLUME_MOUNT):/src --label riju-install-target=yes $(SHELL_PORTS) riju:$(I) $(BASH_CMD) else - docker run -it --rm --hostname $(I) -v $(VOLUME_MOUNT):/src $(SHELL_PORTS) riju:$(I) $(CMD) + docker run -it --rm --hostname $(I) -v $(VOLUME_MOUNT):/src $(SHELL_PORTS) riju:$(I) $(BASH_CMD) endif install: diff --git a/docker/admin/install.bash b/docker/admin/install.bash index 5c63c81..e12e1cf 100755 --- a/docker/admin/install.bash +++ b/docker/admin/install.bash @@ -31,6 +31,7 @@ EOF packages=" apt-file +bind9-dnsutils clang dctrl-tools docker-ce-cli diff --git a/docker/packaging/Dockerfile b/docker/packaging/Dockerfile index 746f7b4..654e85e 100644 --- a/docker/packaging/Dockerfile +++ b/docker/packaging/Dockerfile @@ -5,5 +5,5 @@ RUN /tmp/install.bash WORKDIR /src COPY docker/shared/my_init docker/packaging/pid1.bash /usr/local/sbin/ -ENTRYPOINT ["/usr/local/sbin/my_init", "/usr/local/sbin/pid1.bash"] +ENTRYPOINT ["/usr/local/sbin/my_init", "/usr/local/sbin/pid1.bash", "--"] CMD ["bash"] diff --git a/docker/packaging/install.bash b/docker/packaging/install.bash index 7c4379e..1929f40 100755 --- a/docker/packaging/install.bash +++ b/docker/packaging/install.bash @@ -64,6 +64,7 @@ fakeroot unzip # basic utilities +bind9-dnsutils git jq less diff --git a/docker/packaging/pid1.bash b/docker/packaging/pid1.bash index abc0c17..5bb92a1 100755 --- a/docker/packaging/pid1.bash +++ b/docker/packaging/pid1.bash @@ -7,4 +7,4 @@ useradd -u "$(stat -c %u "$PWD")" -g "$(stat -c %g "$PWD")" -o -p '!' -m -N -l - runuser -u riju touch /home/riju/.sudo_as_admin_successful -exec runuser -u riju "$@" +exec runuser -u riju -- "$@" diff --git a/docker/runtime/Dockerfile b/docker/runtime/Dockerfile index b3e4fd0..5c9f810 100644 --- a/docker/runtime/Dockerfile +++ b/docker/runtime/Dockerfile @@ -5,7 +5,7 @@ RUN /tmp/install.bash WORKDIR /src COPY docker/shared/my_init docker/runtime/pid1.bash /usr/local/sbin/ -ENTRYPOINT ["/usr/local/sbin/my_init", "/usr/local/sbin/pid1.bash"] +ENTRYPOINT ["/usr/local/sbin/my_init", "/usr/local/sbin/pid1.bash", "--"] CMD ["bash"] EXPOSE 6119 EXPOSE 6120 diff --git a/docker/runtime/install.bash b/docker/runtime/install.bash index 01a08ab..efa83bd 100755 --- a/docker/runtime/install.bash +++ b/docker/runtime/install.bash @@ -114,6 +114,7 @@ apt-file dctrl-tools # basic utilities +bind9-dnsutils less git jq diff --git a/docker/runtime/pid1.bash b/docker/runtime/pid1.bash index abc0c17..5bb92a1 100755 --- a/docker/runtime/pid1.bash +++ b/docker/runtime/pid1.bash @@ -7,4 +7,4 @@ useradd -u "$(stat -c %u "$PWD")" -g "$(stat -c %g "$PWD")" -o -p '!' -m -N -l - runuser -u riju touch /home/riju/.sudo_as_admin_successful -exec runuser -u riju "$@" +exec runuser -u riju -- "$@"