Docker Tag | Git Release | OS Version | Size |
---|---|---|---|
ssh | ssh | Alpine 3.19 | |
tool | tool | Alpine 3.19 |
- Bash
- Sed
- Curl
- Gawk
- Rsync
- Version: asapdotid/ansible:tools
docker run -t -i --rm asapdotid/ansible:${version} bash
docker system prune --all --force --volumes
Variable | Description |
---|---|
DEPLOY_SSH_HOST_SERVER | deploy host (server) |
DEPLOY_SSH_HOST_PRIVATE_KEY | deploy key (private) base64 encode |
DEPLOY_SSH_HOST_PUBLIC_KEY | deploy key (public) base64 encode |
Please see the deploy
job stage, how to use the image.
Sample gitlab-ci.yml
file for CI/CD NuxtJS App (staging
branch):
stages:
- setup
- build
- deploy
variables:
DOCKER_DRIVER: overlay2
# Caches
.node_modules-cache: &node_modules-cache
key:
files:
- yarn.lock
paths:
- node_modules
policy: pull
.yarn-cache: &yarn-cache
key: yarn-$CI_JOB_IMAGE
paths:
- .yarn
.build-cache: &build-cache
key: build-$CI_JOB_IMAGE
paths:
- .nuxt
- .output
- public
policy: pull-push
# Staging - Jobs
setup:staging:
stage: setup
rules:
- if: $CI_COMMIT_BRANCH == "staging"
changes:
- "package.json"
when: always
tags:
- nuxt-staging-setup
image: asapdotid/node:16-buster
script:
- yarn config set cache-folder .yarn
- yarn install --frozen-lockfile --no-progress --cache-folder .yarn
retry:
max: 2
when:
- runner_system_failure
- stuck_or_timeout_failure
cache:
- <<: *node_modules-cache
policy: pull-push
build:staging:
stage: build
rules:
- if: $CI_COMMIT_BRANCH == "staging"
tags:
- nuxt-staging-build
image: asapdotid/node:16-buster
before_script:
- \cp ./.env.staging ./.env
script:
- yarn build:production
artifacts:
name: "$CI_COMMIT_BRANCH"
paths:
- .nuxt
- .output
- .env
- ecosystem.config.js
- nuxt.config.ts
- package.json
- yarn.lock
- public
expire_in: 1 hours
retry:
max: 2
when:
- runner_system_failure
- stuck_or_timeout_failure
cache:
- <<: *node_modules-cache
- <<: *build-cache
dependencies:
- setup:staging
deploy:staging:
stage: deploy
rules:
- if: $CI_COMMIT_BRANCH == "staging"
tags:
- nuxt-staging-deploy
image: asapdotid/ansible:tools
variables:
DEPLOY_SSH_HOST_SERVER: $STAGING_DEPLOY_SSH_HOST_IP
DEPLOY_SSH_HOST_PRIVATE_KEY: $SSH_PRIVATE_KEY
DEPLOY_SSH_HOST_PUBLIC_KEY: $SSH_PUBLIC_KEY
script:
- echo "Start deploy to the server"
- |
echo "Script to deploy build source.. (bash script or ansible script"
- echo "Done deploy to the server"
retry:
max: 2
when:
- runner_system_failure
- stuck_or_timeout_failure
cache:
- <<: *node_modules-cache
dependencies:
- build:staging
- insert SSH private key use
base64
decode-d
- insert SSH public key use
base64
decode-d
- Dockerfile add ssh config
LogLevel ERROR
- Ansible Synchronize
ansible.posix: version 1.4.0
(https://galaxy.ansible.com/ansible/posix) - Ansible Docker
community.docker: version 3.3.1
(https://galaxy.ansible.com/community/docker)
MIT / BSD
This role was created in 2021 by Asapdotid.