Есть две темы, которые вы можете попробовать:
-. По расписанию копировать файлы в производство, например linux CLI с crontab (каждую минуту):
* * * * * scp local_file remote_username@remote_ip:remote_file
Но я не Я не рекомендую этот способ, и вы легко поймете.
-. По CICD вот ссылка на блог, чтобы вы сначала узнали концепцию, если не знаете этого:
https://thecodingmachine.io/continuous-delivery-on-a-dedicated-server
Вкратце, вы можете перевести ваш проект sh в частное репозиторий на gitlab или github, а затем начать разработку (= сервер разработки), производство (= производственный сервер), автоматическое задание будет развернуто на серверах, если у вас есть git pu sh.
Вот пример основной части по ссылке на файл .gitlab-ci.yml:
deploy_staging:
stage: deploy
image: kroniak/ssh-client:3.6
script:
# add the server as a known host
- mkdir ~/.ssh
- echo "$SSH_KNOWN_HOSTS" >> ~/.ssh/known_hosts
- chmod 644 ~/.ssh/known_hosts
# add ssh key stored in SSH_PRIVATE_KEY variable to the agent store
- eval $(ssh-agent -s)
- ssh-add <(echo "$SSH_PRIVATE_KEY")
# log into Docker registry
- ssh deployer@thecodingmachine.io "docker login -u gitlab-ci-token -p $CI_BUILD_TOKEN registry.thecodingmachine.com"
# stop container, remove image.
- ssh deployer@thecodingmachine.io "docker stop thecodingmachine.io_${CI_COMMIT_REF_SLUG}" || true
- ssh deployer@thecodingmachine.io "docker rm thecodingmachine.io_${CI_COMMIT_REF_SLUG}" || true
- ssh deployer@thecodingmachine.io "docker rmi registry.thecodingmachine.com/tcm-projects/thecodingmachine.io:${CI_COMMIT_REF_SLUG}" || true
# start new container
- ssh deployer@thecodingmachine.io "docker run --name thecodingmachine.io_${CI_COMMIT_REF_SLUG} --network=web -d registry.thecodingmachine.com/tcm-projects/thecodingmachine.io:${CI_COMMIT_REF_SLUG}"
only:
- branches
except:
- master
Может быть, вам трудно это прочитать, но вы можете знать, что есть способ, который может работать вам, и вам может понадобиться время, чтобы изучить эту часть.
Надеюсь, это сработает для вас .
Спасибо за обмен Дэвидом Негриером.