Compare commits

...

3 commits

Author SHA1 Message Date
Chai Feng
c9547cb4ec
Refactor Vagrantfile with getting docker version automatically
Some checks failed
Unit Testing ufw-docker / Unit Testing (push) Has been cancelled
2024-11-11 18:08:27 +08:00
Chai Feng
9474084f3f
Update Dockerfile with improved version matching 2024-11-11 18:07:06 +08:00
Chai Feng
1fa425bf17
Add node-internal 2024-11-08 10:25:22 +08:00
2 changed files with 16 additions and 12 deletions

View file

@ -1,6 +1,6 @@
FROM ubuntu:22.04 FROM ubuntu:24.04
ARG docker_version="20.10.17" ARG docker_version="27.3.1"
ENV DEBIAN_FRONTEND=noninteractive ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update \ RUN apt-get update \
@ -12,8 +12,7 @@ RUN apt-get update \
| tee /etc/apt/sources.list.d/docker.list > /dev/null \ | tee /etc/apt/sources.list.d/docker.list > /dev/null \
&& apt-get update \ && apt-get update \
&& apt-get install -y --no-install-recommends locales ufw \ && apt-get install -y --no-install-recommends locales ufw \
&& ( apt-get install -y --no-install-recommends "docker-ce=5:${docker_version}~*" || \ && apt-get install -y --no-install-recommends "docker-ce=$(apt-cache madison docker-ce | grep -m1 -F "${docker_version}" | cut -d'|' -f2 | tr -d '[[:blank:]]')" \
apt-get install -y --no-install-recommends "docker-ce=${docker_version}~*" ) \
&& locale-gen en_US.UTF-8 \ && locale-gen en_US.UTF-8 \
&& apt-get clean autoclean \ && apt-get clean autoclean \
&& apt-get autoremove --yes \ && apt-get autoremove --yes \

21
Vagrantfile vendored
View file

@ -6,16 +6,15 @@
ENV['VAGRANT_NO_PARALLEL']="true" ENV['VAGRANT_NO_PARALLEL']="true"
Vagrant.configure('2') do |config| Vagrant.configure('2') do |config|
docker_version = "20.10.17"
ubuntu_version = File.readlines("Dockerfile").filter { |line| ubuntu_version = File.readlines("Dockerfile").filter { |line|
line.start_with?("FROM ") line.start_with?("FROM ")
}.first.match(/\d\d\.\d\d/)[0] }.first.match(/\d\d\.\d\d/)[0]
config.vm.box = "chaifeng/ubuntu-#{ubuntu_version}-docker-#{docker_version}#{(`uname -m`.strip == "arm64")?"-arm64":""}" docker_version = File.readlines("Dockerfile").filter { |line|
line.start_with?("ARG docker_version=")
}.first.match(/"([\d\.]+)"/)[1]
#config.vm.box = "chaifeng/ubuntu-20.04-docker-20.10.17#{(`uname -m`.strip == "arm64")?"-arm64":""}" config.vm.box = "chaifeng/ubuntu-#{ubuntu_version}-docker-#{docker_version}"
config.vm.provider 'virtualbox' do |vb| config.vm.provider 'virtualbox' do |vb|
vb.memory = '1024' vb.memory = '1024'
@ -178,9 +177,10 @@ DOCKERFILE
ufw-docker service allow public_service 80/tcp ufw-docker service allow public_service 80/tcp
docker service create --name "public_multiport" \ docker service inspect "public_multiport" ||
--publish "40080:80" --publish "47000:7000" --publish "48080:8080" \ docker service create --name "public_multiport" \
--env name="public_multiport" --replicas 3 #{private_registry}/chaifeng/hostname-webapp --publish "40080:80" --publish "47000:7000" --publish "48080:8080" \
--env name="public_multiport" --replicas 3 #{private_registry}/chaifeng/hostname-webapp
ufw-docker service allow public_multiport 80/tcp ufw-docker service allow public_multiport 80/tcp
ufw-docker service allow public_multiport 8080/tcp ufw-docker service allow public_multiport 8080/tcp
@ -202,6 +202,11 @@ DOCKERFILE
end end
end end
config.vm.define "node-internal" do |node|
node.vm.hostname = "node-internal"
node.vm.network "private_network", ip: "#{ip_prefix}.142"
end
config.vm.define "external" do |external| config.vm.define "external" do |external|
external.vm.hostname = "external" external.vm.hostname = "external"
external.vm.network "private_network", ip: "#{ip_prefix}.127" external.vm.network "private_network", ip: "#{ip_prefix}.127"