Saturday, November 6, 2021

Running github actions on docker containers

 Running job on a docker container.

nameContainer
onpush
jobs:
  node-docker:
    runs-onubuntu-latest
    container
      imagenode:13.5.0-alpine3.10
    steps:
      - nameLog node version 
        run:  |
          node -v
          cat /etc/os-release


A sample Dockerfile for a nodejs app available.

#Dockerfile for nodejs app
FROM node:10.13-alpine
WORKDIR /usr/src/app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 3000
CMD node app.js

#docker-compose.yml
version'2.1'

services:
 app:
   build.
   ports:
     - 3001:3000
 mongo:
   imagemongo
   ports:
     - "27017:27017"


docker-compose build
docker-compose start

Using the docker-compose multiple containers

#Multiple containers in github actions, using services instead of container section
nameMultiple Containers
onpush
jobs:
  node-docker:
    runs-onubuntu-latest
    services
      app:
        imagedocker-username/node-api-imagename
        ports:
          - 3001:3000
      mongo:
        imagemongo
        ports:
          - "27017:27017"
    steps:
      - nameget user
        run:  curl http://localhost:3001/api/users

To use docker containers for individual steps of job.

#docker containers inside individual steps
nameContainers
onpush
jobs:
  docker-steps:
    runs-onubuntu-latest
    container:
      imagenode:10.18.0-jessie
    steps:
      - namelog node version 
        runnode -v 
      - nameStep with docker
        usesdocker://node:12.14.1-alpine3.10
        with
          # Same as entrypoint in dockerfile but with different syntax
          entrypoint'/bin/echo'
          args'Hello World' # for multiple values ['']
      - nameStep with docker
        usesdocker://node:12.14.1-alpine3.10
        with
          entrypoint'/usr/local/bin/node'
          args-v

No comments:

Post a Comment