Skip to content

Commit

Permalink
Add 301s for image reference pages (#1674)
Browse files Browse the repository at this point in the history
## Type of change
Sunsetting edu's image reference pages

### What should this PR do?
Add 301 redirects for image reference pages to images.chainguard.dev

### Why are we making this change?
Part of 24g priorities

### What are the acceptance criteria? 
Landing on the images list or individual image reference pages redirects
to the appropriate location on images.chainguard.dev

### How should this PR be tested?
Netlify preview deployment doesn't seem to use the nginx config, unlike
production?
Tested using curl locally against nginx.
  • Loading branch information
julienv3 authored Jul 15, 2024
1 parent 1ebbfab commit 460ae13
Show file tree
Hide file tree
Showing 32 changed files with 82 additions and 90 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -238,7 +238,7 @@ assume-and-explore:

Let's go over what this configuration does.

First, GitLab requires that pipelines have a shell. To this end, this configuration uses the [`cgr.dev/chainguard/wolfi-base` image](https://edu.chainguard.dev/chainguard/chainguard-images/reference/wolfi-base/) since it includes the `sh` shell.
First, GitLab requires that pipelines have a shell. To this end, this configuration uses the [`cgr.dev/chainguard/wolfi-base` image](https://images.chainguard.dev/directory/image/wolfi-base/overview) since it includes the `sh` shell.

Next, this configuration creates a JSON Web Token (JWT) with an [`id_tokens`](https://docs.gitlab.com/ee/ci/yaml/index.html#id_tokens) block that will allow the job to be able to fetch an OIDC token and authenticate with Chainguard. GitLab requires that any JWTs created in this manner must include an `aud` keyword. In this case, it should align with the `audience` associated with the Chainguard identity created in the `gitlab.tf` file: `https://gitlab.com`.

Expand Down
3 changes: 0 additions & 3 deletions content/chainguard/administration/network-requirements.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,6 @@ description: "Using Chainguard Images with firewalls, access control lists, and
date: 2023-09-08T08:49:31+00:00
lastmod: 2024-05-14T15:22:20+01:00
draft: false
aliases:
- /chainguard/chainguard-images/reference/network-requirements/
- /chainguard/chainguard-enforce/reference/network-requirements/
tags: ["Chainguard Images", "Product", "Reference"]
images: []
toc: true
Expand Down
12 changes: 6 additions & 6 deletions content/chainguard/chainguard-images/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,32 +20,32 @@ tutorials: [
{
title: "Go",
description: "",
url: "/chainguard/chainguard-images/reference/go/"
url: "https://images.chainguard.dev/directory/image/go/overview"
},
{
title: "Node",
description: "",
url: "/chainguard/chainguard-images/reference/node/"
url: "https://images.chainguard.dev/directory/image/node/overview"
},
{
title: "PHP",
description: "",
url: "/chainguard/chainguard-images/reference/php/"
url: "https://images.chainguard.dev/directory/image/php/overview"
},
{
title: "Python",
description: "",
url: "/chainguard/chainguard-images/reference/python/"
url: "https://images.chainguard.dev/directory/image/python/overview"
},
{
title: "NGINX",
description: "",
url: "/chainguard/chainguard-images/reference/nginx/"
url: "https://images.chainguard.dev/directory/image/nginx/overview"
},
{
title: "JDK (Java)",
description: "",
url: "/chainguard/chainguard-images/reference/jdk/overview/"
url: "https://images.chainguard.dev/directory/image/jdk/overview"
},
]

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ For example, the following table shows a comparison between the `dev` variants o
| `composer` | | X | |
| `php-fpm` | | | X |

You can find similar comparison tables for all Chainguard Images in their respective "Image Variants" page, on the [Images Reference](/chainguard/chainguard-images/reference/) section of the documentation.
You can find similar detailed package information for all [Chainguard Images](https://images.chainguard.dev) in their respective image details pages under the SBOM section.

Once you have changed your Dockerfile base image to use a `-dev` variant, you can overwrite the entry point command to get a shell on the container:

Expand All @@ -58,11 +58,11 @@ That being said, it's worth noting that the `-dev` variants of Chainguard Images
### Language Ecosystem Guides
The following guides show how to use these `-dev` images in combination with their distroless variants in order to build a final image that is also distroless, but contains everything the application needs to run:

- [Getting Started with the Python Chainguard Image](/chainguard/chainguard-images/reference/python/getting-started-python/)
- [Getting Started with the Ruby Chainguard Image](/chainguard/chainguard-images/reference/ruby/getting-started-ruby/)
- [Getting Started with the Go Chainguard Image](/chainguard/chainguard-images/reference/go/getting-started-go/)
- [Getting Started with the Node Chainguard Image](/chainguard/chainguard-images/reference/node/getting-started-node/)
- [Getting Started with the PHP Chainguard Image](/chainguard/chainguard-images/reference/php/getting-started-php/)
- [Getting Started with the Python Chainguard Image](/chainguard/chainguard-images/getting-started/python/)
- [Getting Started with the Ruby Chainguard Image](/chainguard/chainguard-images/getting-started/ruby/)
- [Getting Started with the Go Chainguard Image](/chainguard/chainguard-images/getting-started/go/)
- [Getting Started with the Node Chainguard Image](/chainguard/chainguard-images/getting-started/node/)
- [Getting Started with the PHP Chainguard Image](/chainguard/chainguard-images/getting-started/php/)

Check also the guide on [Creating Wolfi Images with Dockerfiles](/open-source/wolfi/wolfi-with-dockerfiles/) for guidance on how to build a custom image that can be used for development and debugging.

Expand Down
2 changes: 1 addition & 1 deletion content/chainguard/chainguard-images/faq.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ There are currently hundreds of Chainguard Images available, which are segmented

To review all available Chainguard Images, you can check out the Chainguard Console at [https://images.chainguard.dev](https://images.chainguard.dev).

To review Chainguard's Developer Images, you can check out either the [Chainguard Images Reference Docs](https://edu.chainguard.dev/chainguard/chainguard-images/reference/) or the [GitHub Repository](https://github.com/chainguard-images).
To review Chainguard's Developer Images, you can check out either the [Chainguard Images Directory](https://images.chainguard.dev/directory?category=developer) or the [GitHub Repository](https://github.com/chainguard-images).

Chainguard Images are available through the [Chainguard Registry](/chainguard/chainguard-images/registry/overview/).

Expand Down
4 changes: 2 additions & 2 deletions content/chainguard/chainguard-images/getting-started/go.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ The Go images based on Wolfi and maintained by Chainguard provide distroless ima

Chainguard offers a minimal runtime image designed for running Go workloads, and a development image that contains a shell and the standard Go build tooling.

We'll demonstrate two ways that you can build the Go image. The [first example](#example-1-minimal-go-chainguard-image-built-with-ko) will show how to build the Go Chainguard Image with [ko](https://ko.build/). ko enables you to build images from Go programs and push them to container registries without requiring a Dockerfile. The [second example](#example-2--multistage-docker-build-for-go-chainguard-image) will show how to create a [multi-stage Docker build](https://docs.docker.com/build/building/multi-stage/) that uses the [glibc-dynamic runtime image](/chainguard/chainguard-images/reference/glibc-dynamic/overview/) along with the Go Chainguard Image.
We'll demonstrate two ways that you can build the Go image. The [first example](#example-1-minimal-go-chainguard-image-built-with-ko) will show how to build the Go Chainguard Image with [ko](https://ko.build/). ko enables you to build images from Go programs and push them to container registries without requiring a Dockerfile. The [second example](#example-2--multistage-docker-build-for-go-chainguard-image) will show how to create a [multi-stage Docker build](https://docs.docker.com/build/building/multi-stage/) that uses the [glibc-dynamic runtime image](https://images.chainguard.dev/directory/image/glibc-dynamic/overview) along with the Go Chainguard Image.

If you would like to follow along with both examples, you'll need both ko and Docker installed, which you can achieve by following the official installation guides for your setup:

Expand Down Expand Up @@ -155,7 +155,7 @@ Now that you have built the Go Chainguard Image with ko, you can continue onto [

## Example 2 — Multistage Docker Build for Go Chainguard Image

Because Go applications are compiled and the toolchain is not typically required in a runtime image, we suggest the usage of a [multi-stage Docker build](https://docs.docker.com/build/building/multi-stage/) that uses the [glibc-dynamic runtime image](/chainguard/chainguard-images/reference/glibc-dynamic/overview/). In some cases, the [static image](/chainguard/chainguard-images/reference/static/overview/) may be used as well for an even smaller image, but extra care must be taken to ensure the Go binary is statically-compiled.
Because Go applications are compiled and the toolchain is not typically required in a runtime image, we suggest the usage of a [multi-stage Docker build](https://docs.docker.com/build/building/multi-stage/) that uses the [glibc-dynamic runtime image](https://images.chainguard.dev/directory/image/glibc-dynamic/overview). In some cases, the [static image](https://images.chainguard.dev/directory/image/static/overview) may be used as well for an even smaller image, but extra care must be taken to ensure the Go binary is statically-compiled.

For this multi-stage build, we'll use two `FROM` lines in our Dockerfile. To create this Dockerfile, you can use any code editor of your choice, we'll use Nano for demonstation purposes.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ weight: 610
toc: true
---

The [Laravel Chainguard Image](https://edu.chainguard.dev/chainguard/chainguard-images/reference/laravel/overview/) is a container image that has the tooling necessary to develop, build, and execute [Laravel](https://laravel.com) applications, including required extensions. Laravel is a full-stack PHP framework that enables developers to build complex applications using modern tools and techniques that help streamline the development process.
The [Laravel Chainguard Image](https://images.chainguard.dev/directory/image/laravel/overview) is a container image that has the tooling necessary to develop, build, and execute [Laravel](https://laravel.com) applications, including required extensions. Laravel is a full-stack PHP framework that enables developers to build complex applications using modern tools and techniques that help streamline the development process.

In this guide, we'll set up a demo and demonstrate how you can use Chainguard Images to develop, build, and run Laravel applications.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ weight: 612
toc: true
---

[NVIDIA NeMo](https://github.com/NVIDIA/NeMo) is a deep learning framework for building conversational AI models that provides standalone module collections for Automatic Speech Recognition (ASR), Natural Language Processing (NLP), and Text-to-Speech (TTS) tasks. The [NeMo Chainguard Image](/chainguard/chainguard-images/reference/nemo/) is a comparatively lightweight NeMo environment with low to no CVEs, making it ideal for both training and production inference. The NeMo Chainguard Image is designed to work with the [CUDA 12](https://developer.nvidia.com/about-cuda) parallel computing platform, and is suited to workloads that take advantage of connected GPUs.
[NVIDIA NeMo](https://github.com/NVIDIA/NeMo) is a deep learning framework for building conversational AI models that provides standalone module collections for Automatic Speech Recognition (ASR), Natural Language Processing (NLP), and Text-to-Speech (TTS) tasks. The [NeMo Chainguard Image](https://images.chainguard.dev/directory/image/nemo/overview) is a comparatively lightweight NeMo environment with low to no CVEs, making it ideal for both training and production inference. The NeMo Chainguard Image is designed to work with the [CUDA 12](https://developer.nvidia.com/about-cuda) parallel computing platform, and is suited to workloads that take advantage of connected GPUs.

{{< details "What is Deep Learning?" >}}
{{< blurb/deep-learning >}}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -273,7 +273,7 @@ docker container stop nginxcontainer

## Advanced Usage

In this demo, we did not copy the configuration file into the image built from the Dockerfile. This is because the default configuration file in the image was sufficient for the scope of this demo. If you wish to use a custom configuration file, you must ensure that file paths, ports, and other system-specific settings are configured to match the container environment. You can find more information about making these changes at the [Chainguard nginx Image Overview](/chainguard/chainguard-images/reference/nginx/image_specs/).
In this demo, we did not copy the configuration file into the image built from the Dockerfile. This is because the default configuration file in the image was sufficient for the scope of this demo. If you wish to use a custom configuration file, you must ensure that file paths, ports, and other system-specific settings are configured to match the container environment. You can find more information about making these changes at the [Chainguard nginx Image Overview](https://images.chainguard.dev/directory/image/nginx/overview).

{{< blurb/images-advanced image="nginx" >}}

Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ weight: 610
toc: true
---

The [Node Chainguard Image](https://edu.chainguard.dev/chainguard/chainguard-images/reference/node/overview/) is a distroless container image that has the tooling necessary to build and execute Node applications, including `npm`.
The [Node Chainguard Image](https://images.chainguard.dev/directory/image/node/overview) is a distroless container image that has the tooling necessary to build and execute Node applications, including `npm`.

In this guide, we'll set up a demo application and create a Dockerfile to build and execute the demo using the Node Chainguard Image as base.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ weight: 611
toc: true
---

Chainguard offers a minimal, low-CVE image for deep learning with [PyTorch](https://pytorch.org/) that includes the [CUDA 12](https://developer.nvidia.com/about-cuda) parallel computing platform for performing computation on NVIDIA GPUs. This introductory guide to Chainguard's [pytorch-cuda12](https://edu.chainguard.dev/chainguard/chainguard-images/reference/pytorch-cuda12/) image will walk you through fine-tuning an image classification model, saving the model, and running it securely for inference. We'll also compare the security and footprint of the PyTorch-CUDA12 Chainguard Image to the official runtime image distributed by PyTorch and present ways to adapt the resources in this tutorial to your own deep learning projects powered by PyTorch.
Chainguard offers a minimal, low-CVE image for deep learning with [PyTorch](https://pytorch.org/) that includes the [CUDA 12](https://developer.nvidia.com/about-cuda) parallel computing platform for performing computation on NVIDIA GPUs. This introductory guide to Chainguard's [pytorch-cuda12](https://images.chainguard.dev/directory/image/pytorch-cuda12/overview) image will walk you through fine-tuning an image classification model, saving the model, and running it securely for inference. We'll also compare the security and footprint of the PyTorch-CUDA12 Chainguard Image to the official runtime image distributed by PyTorch and present ways to adapt the resources in this tutorial to your own deep learning projects powered by PyTorch.

{{< details "Chainguard Images" >}}
{{< blurb/images >}}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ weight: 610
toc: true
---

The [Ruby images](/chainguard/chainguard-images/reference/ruby/image_specs/) maintained by Chainguard are a mix of development and production distroless images that are suitable for building and running Ruby workloads.
The [Ruby images](https://images.chainguard.dev/directory/image/ruby/versions) maintained by Chainguard are a mix of development and production distroless images that are suitable for building and running Ruby workloads.

Because Ruby applications typically require the installation of third-party dependencies via [Rubygems](https://rubygems.org/), using a pure distroless image for building your application would not work. In cases like this, you'll need to implement a [multi-stage Docker build](https://docs.docker.com/build/building/multi-stage/) that uses one of the `-dev` images to set up the application.

Expand Down
Loading

0 comments on commit 460ae13

Please sign in to comment.