diff --git a/docker-traefik-nginx/Vagrantfile b/docker-traefik-nginx/Vagrantfile index 773aaf7..c9a3602 100644 --- a/docker-traefik-nginx/Vagrantfile +++ b/docker-traefik-nginx/Vagrantfile @@ -13,7 +13,7 @@ Vagrant.configure("2") do |config| # Every Vagrant development environment requires a box. You can search for # boxes at https://vagrantcloud.com/search. config.vm.box = "debian/bullseye64" - config.vm.hostname = "traefik" + config.vm.hostname = "traefikb" # Disable automatic box update checking. If you disable this, then # boxes will only be checked for updates when the user runs @@ -73,52 +73,45 @@ Vagrant.configure("2") do |config| gpasswd -a vagrant docker fi mkdir -p docker/traefik && cd docker/traefik - wget https://github.com/FiloSottile/mkcert/releases/download/v1.4.4/mkcert-v1.4.4-linux-amd64 - chmod +x mkcert-v*-linux-amd64 - cp mkcert-v*-linux-amd64 /usr/local/bin/mkcert - mkdir certs && cd certs - mkcert your-domain.net - cd .. + mkdir nginx + echo "my.nginx" > nginx/index.html + mkdir nginx2 + echo "my.nginx2" > nginx2/index.html + #cat > docker-compose.yml <<-EOT + cat > docker-compose.yml <<'EOT' +version: '3' - cat > docker-compose.yml <<-EOT -version: "3.2" -traefik: - image: traefik:latest - command: - - --entrypoints.web.address=:80 - - --entrypoints.websecure.address=:443 - - --providers.docker=true - - --providers.file.directory=/etc/traefik/dynamic_conf - - --providers.file.watch=true - ports: - - 80:80 - - 443:443 - volumes: - - /var/run/docker.sock:/var/run/docker.sock:ro - - ./certs/:/certs/:ro - - ./traefik.yml:/etc/traefik/dynamic_conf/conf.yml:ro - -web: - image: nginx:1.17.8-alpine - labels: - # http with redirection - - traefik.http.middlewares.redirect-middleware.redirectscheme.scheme=https - - traefik.http.routers.web-router.entrypoints=web - - traefik.http.routers.web-router.rule=Host(`your-domain.net`) - - traefik.http.routers.web-router.middlewares=redirect-middleware - # https - - traefik.http.routers.websecure-router.entrypoints=websecure - - traefik.http.routers.websecure-router.tls=true - - traefik.http.routers.websecure-router.rule=Host(`your-domain.net`) -EOT -cat > mariadb.env <<-EOT -tls: - certificates: - - certFile: /certs/awx.afone.priv.crt - keyFile: /certs/awx.afone.priv.key -EOT +services: + reverse-proxy: + # The official v2 Traefik docker image + image: traefik:latest + # Enables the web UI and tells Traefik to listen to docker + command: --api.insecure=true --providers.docker + ports: + # The HTTP port + - "80:80" + # The Web UI (enabled by --api.insecure=true) + - "8080:8080" + volumes: + # So that Traefik can listen to the Docker events + - /var/run/docker.sock:/var/run/docker.sock + nginx: + # A container that exposes an API to show its IP address + image: nginx:1.23-alpine + volumes: + - ./nginx:/usr/share/nginx/html:ro + labels: + - "traefik.http.routers.nginx.rule=Host(`my.nginx`)" + nginx2: + # A container that exposes an API to show its IP address + image: nginx:1.23-alpine + volumes: + - ./nginx2:/usr/share/nginx/html:ro + labels: + - "traefik.http.routers.nginx2.rule=Host(`my.nginx2`)" +'EOT' docker compose up -d ip -br a - SHELL + SHELL end diff --git a/docker-traefik-nginxb/Vagrantfile b/docker-traefik-nginxb/Vagrantfile deleted file mode 100644 index c9a3602..0000000 --- a/docker-traefik-nginxb/Vagrantfile +++ /dev/null @@ -1,117 +0,0 @@ -# -*- mode: ruby -*- -# vi: set ft=ruby : - -# All Vagrant configuration is done below. The "2" in Vagrant.configure -# configures the configuration version (we support older styles for -# backwards compatibility). Please don't change it unless you know what -# you're doing. -Vagrant.configure("2") do |config| - # The most common configuration options are documented and commented below. - # For a complete reference, please see the online documentation at - # https://docs.vagrantup.com. - - # Every Vagrant development environment requires a box. You can search for - # boxes at https://vagrantcloud.com/search. - config.vm.box = "debian/bullseye64" - config.vm.hostname = "traefikb" - - # Disable automatic box update checking. If you disable this, then - # boxes will only be checked for updates when the user runs - # `vagrant box outdated`. This is not recommended. - # config.vm.box_check_update = false - - # Create a forwarded port mapping which allows access to a specific port - # within the machine from a port on the host machine. In the example below, - # accessing "localhost:8080" will access port 80 on the guest machine. - # NOTE: This will enable public access to the opened port - # config.vm.network "forwarded_port", guest: 80, host: 8080 - - # Create a forwarded port mapping which allows access to a specific port - # within the machine from a port on the host machine and only allow access - # via 127.0.0.1 to disable public access - # config.vm.network "forwarded_port", guest: 80, host: 8080, host_ip: "127.0.0.1" - - # Create a private network, which allows host-only access to the machine - # using a specific IP. - # config.vm.network "private_network", ip: "192.168.33.10" - - # Create a public network, which generally matched to bridged network. - # Bridged networks make the machine appear as another physical device on - # your network. - config.vm.network "public_network" - - # Share an additional folder to the guest VM. The first argument is - # the path on the host to the actual folder. The second argument is - # the path on the guest to mount the folder. And the optional third - # argument is a set of non-required options. - # config.vm.synced_folder "../data", "/vagrant_data" - - # Provider-specific configuration so you can fine-tune various - # backing providers for Vagrant. These expose provider-specific options. - # Example for VirtualBox: - # - config.vm.provider "virtualbox" do |vb| - # # Display the VirtualBox GUI when booting the machine - # vb.gui = true - # - # # Customize the amount of memory on the VM: - vb.memory = "1024" - end - # - # View the documentation for the provider you are using for more - # information on available options. - - # Enable provisioning with a shell script. Additional provisioners such as - # Ansible, Chef, Docker, Puppet and Salt are also available. Please see the - # documentation for more information about their specific syntax and use. - config.vm.provision "shell", inline: <<-SHELL - apt-get update - apt-get install -y wget curl git vim libnss3-tools - if ! which docker ; then - curl -s -o getdocker.sh https://get.docker.com - bash getdocker.sh - gpasswd -a vagrant docker - fi - mkdir -p docker/traefik && cd docker/traefik - mkdir nginx - echo "my.nginx" > nginx/index.html - mkdir nginx2 - echo "my.nginx2" > nginx2/index.html - #cat > docker-compose.yml <<-EOT - cat > docker-compose.yml <<'EOT' -version: '3' - -services: - reverse-proxy: - # The official v2 Traefik docker image - image: traefik:latest - # Enables the web UI and tells Traefik to listen to docker - command: --api.insecure=true --providers.docker - ports: - # The HTTP port - - "80:80" - # The Web UI (enabled by --api.insecure=true) - - "8080:8080" - volumes: - # So that Traefik can listen to the Docker events - - /var/run/docker.sock:/var/run/docker.sock - nginx: - # A container that exposes an API to show its IP address - image: nginx:1.23-alpine - volumes: - - ./nginx:/usr/share/nginx/html:ro - labels: - - "traefik.http.routers.nginx.rule=Host(`my.nginx`)" - nginx2: - # A container that exposes an API to show its IP address - image: nginx:1.23-alpine - volumes: - - ./nginx2:/usr/share/nginx/html:ro - labels: - - "traefik.http.routers.nginx2.rule=Host(`my.nginx2`)" -'EOT' - docker compose up -d - ip -br a - SHELL -end -