Running job on a docker container.
name: Container
on: push
jobs:
node-docker:
runs-on: ubuntu-latest
container:
image: node:13.5.0-alpine3.10
steps:
- name: Log 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:
image: mongo
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
name: Multiple Containers
on: push
jobs:
node-docker:
runs-on: ubuntu-latest
services:
app:
image: docker-username/node-api-imagename
ports:
- 3001:3000
mongo:
image: mongo
ports:
- "27017:27017"
steps:
- name: get user
run: curl http://localhost:3001/api/users
To use docker containers for individual steps of job.
#docker containers inside individual steps
name: Containers
on: push
jobs:
docker-steps:
runs-on: ubuntu-latest
container:
image: node:10.18.0-jessie
steps:
- name: log node version
run: node -v
- name: Step with docker
uses: docker://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 ['']
- name: Step with docker
uses: docker://node:12.14.1-alpine3.10
with:
entrypoint: '/usr/local/bin/node'
args: -v
No comments:
Post a Comment