Build Container Images
This page explains how to build container images for your applications using FluentCI.
Before you begin
The instructions on this page assume that you are familiar with Docker
. In addition:
- Have Docker installed on your machine.
- Have your application source code along with
Dockerfile
handy.
Using the Buildx Plugin
You can use FluentCI to build container images using the buildx plugin, no need to install buildx on your machine, FluentCI will handle everything for you.
The following command can be used to build container images:
fluentci run --wasm buildx build --platform linux/amd64,linux/arm64 -t demo:latest .
Using the Nixpacks Plugin
You can use FluentCI to build container images using the nixpacks plugin, no need to install nixpacks on your machine, FluentCI will handle everything for you.
The following command can be used to plan and build container image:
fluentci run --wasm nixpacks nixpacks plan . --format json
fluentci run --wasm nixpacks nixpacks build . --name myapp
CI/CD pipeline integrations
The following examples show how to integrate FluentCI with popular CI providers to build container images:
- Github Actions
- GitLab CI
- Circle CI
- Azure Pipelines
- AWS CodePipeline
ci.yml
name: ci
on:
push:
branches:
- main
jobs:
tasks:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Setup Fluent CI
uses: fluentci-io/setup-fluentci@v5
- name: build
run: fluentci run --wasm buildx build
.gitlab-ci.yml
.docker:
image: denoland/deno:debian-1.42.4
services:
- docker:${DOCKER_VERSION}-dind
variables:
DOCKER_HOST: tcp://docker:2376
DOCKER_TLS_VERIFY: "1"
DOCKER_TLS_CERTDIR: /certs
DOCKER_CERT_PATH: /certs/client
DOCKER_DRIVER: overlay2
DOCKER_VERSION: 20.10.16
GITLAB_ACCESS_TOKEN: $GITLAB_ACCESS_TOKEN
.fluentci:
extends: .docker
before_script:
- apt-get update
- apt-get install -y curl tar gzip ca-certificates openssl git unzip libncursesw6
- deno install -A -r https://cli.fluentci.io -n fluentci
- fluentci --version
- curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.12.3 sh
- mv bin/dagger /usr/local/bin
- dagger version
build:
extends: .fluentci
script:
- fluentci run --wasm buildx build
.circleci/config.yml
version: 2.1
jobs:
job:
steps:
- checkout
- run: |
sudo apt-get update && sudo apt-get install -y curl unzip
curl -fsSL https://cli.fluentci.io | bash
fluentci --version
name: Setup FluentCI
- run: fluentci run --wasm buildx build
name: build
machine:
image: ubuntu-2004:2023.07.1
workflows:
fluentci:
jobs:
- job
azure-pipelines.yml
trigger:
- main
pool:
vmImage: ubuntu-latest
steps:
- script: |
curl -fsSL https://cli.fluentci.io | bash
fluentci --version
echo "##vso[task.prependpath]${HOME}/.deno/bin
displayName: Setup FluentCI
- script: fluentci run --wasm buildx build
displayName: build
buildspec.yml
version: 0.2
phases:
install:
commands:
- curl -fsSL https://cli.fluentci.io | bash
- fluentci --version
build:
commands:
- fluentci run --wasm buildx build
post_build:
commands:
- echo Build completed on `date`