- # Pull ligato/dev_vpp_agent docker image and re-tag as local.
- sudo docker pull "ligato/dev-vpp-agent:${vpp_agent_stable_ver}" || {
- die "Failed to pull Docker image!"
- }
- params=(ligato/dev-vpp-agent:${vpp_agent_stable_ver} dev_vpp_agent:latest)
- sudo docker tag "${params[@]}" || {
- die "Failed to tag Docker image!"
- }
-
- # Start dev_vpp_agent container as daemon.
- sudo docker run --rm -itd --name "agentcnt" "dev_vpp_agent" bash || {
- die "Failed to run Docker image!"
- }
-
- # Copy latest vpp api into running container.
- sudo docker exec agentcnt rm -rf "agentcnt:/usr/share/vpp/api" || {
- die "Failed to remove previous API!"
- }
- sudo docker cp "/tmp/vpp/usr/share/vpp/api" "agentcnt:/usr/share/vpp" || {
- die "Failed to copy files Docker image!"
- }
-
- # Recompile vpp-agent.
- script_arg=". ~/.bashrc; cd /go/src/github.com/ligato/vpp-agent"
- script_arg+=" && make generate && make install"
- sudo docker exec -i agentcnt script -qec "${script_arg}" || {
- die "Failed to recompile vpp-agent in Docker image!"
- }
- # Make sure .deb files of other version are not present.
- rm_cmd="rm -vf /opt/vpp-agent/dev/vpp/build-root/vpp*.deb /opt/vpp/*.deb"
- sudo docker exec agentcnt bash -c "${rm_cmd}" || {
- die "Failed to remove VPP debian packages!"
- }
- for f in "${DOWNLOAD_DIR}"/*; do
- sudo docker cp "$f" "agentcnt:/opt/vpp-agent/dev/vpp/build-root"/ || {
- die "Failed to copy files to Docker image!"
- }
- done
- # Save container state.
- sudo docker commit "$(sudo docker ps -q)" "dev_vpp_agent:latest" || {
- die "Failed to commit state of Docker image!"
- }
-
- # Build prod_vpp_agent docker image.
- cd "docker/prod" || die "Change directory failed."
- sudo docker build --tag "prod_vpp_agent" --no-cache "." || {
- die "Failed to build Docker image!"
- }