Blog Post

Apps on Azure Blog
2 MIN READ

Init Containers in Azure Container Apps : File Processing

Astha's avatar
Astha
Icon for Microsoft rankMicrosoft
Sep 18, 2023

In some scenarios, you might need to preprocess files before they're used by your application. For instance, you're deploying a machine learning model that relies on precomputed data files. An Init Container can download, extract, or preprocess these files, ensuring they are ready for the main application container. This approach simplifies the deployment process and ensures that your application always has access to the required data.

 

The below example defines a simple Pod that has an init container which downloads a file from some resource to a file share which is shared between the init and main app container. The main app container is running a php-apache image and serves the landing page using the index.php file downloaded into the shared file space.

 

 

The init container mounts the shared volume at /mydir , and the main application container mounts the shared volume at /var/www/html. The init container runs the following command to download the file and then terminates: wget -O /mydir/index.php http://info.cern.ch

 

Configurations and dockerfile for init container:

 

 

 

  • Dockerfile for init which downloads an index.php file under /mydir:

 

FROM busybox:1.28 
WORKDIR / 
ENTRYPOINT ["wget", "-O", "/mydir/index.php", "http://info.cern.ch"]

 

 

 

Configuration for main app container:

 

  • Create main app container mounting file share named init on path /var/www/html:

 

 

  • Main app container configuration which uses php-apache image and serves the index.php file from DocumentRoot /var/www/html:

 

Output:

 

 

 

 

Logs:

 

 

Published Sep 18, 2023
Version 1.0
No CommentsBe the first to comment