我有使用 Linux (Ubunty) 的 EC2 实例和 10 GB 的根卷。我已经消耗了大约 96% 的大小,现在我的应用程序响应速度很慢,因此我想将大小增加到 50 GB。
最重要的一点是,我已经有数据了,并且许多应用程序正在这个 EC2 实例上运行,我不想打扰或停止它们。
检查当前可用空间 ~$ df -hT
请使用~$ lsblk
命令检查分区大小
我有一个具有以下配置的 AWS Lightsail 虚拟机
主要问题是 RAM 不足以满足我当前的工作并且面临内存不足的问题。
我想将 RAM 增加到至少2GB或更多。
我已经在当前计算机上安装了许多软件和必要的设置。
要点是,我不想经历再次重新安装所有软件并进行设置的痛苦,这根本不是一个容易的过程。我在 MongoDB docker 实例中也有可用的数据。
迁移到具有 2GB RAM、软件+设置和数据的新虚拟机的最佳解决方案是什么?
data-migration virtual-machine amazon-web-services amazon-lightsail
当我决定弄清楚为什么我正在从事的项目如此重要时,这一切就开始了。我运行了以下脚本:
git rev-list --objects --all \
| git cat-file --batch-check='%(objecttype) %(objectname) %(objectsize) %(rest)' \
| sed -n 's/^blob //p' \
| sort --numeric-sort --key=2 \
| cut -c 1-12,41- \
| $(command -v gnumfmt || echo numfmt) --field=2 --to=iec-i --suffix=B --padding=7 --round=nearest
Run Code Online (Sandbox Code Playgroud)
并找出哪些提交具有最重的文件。接下来,我想看看谁是这些提交的作者以及何时尝试运行以下内容:
git show --stat COMMIT_HASH
Run Code Online (Sandbox Code Playgroud)
我收到一堆官样文章,当我尝试回滚到提交时,我收到上述错误。
所以我的问题是:如何找到提交的作者?
我在 AWS ECR 中有一个带有多个标签的图像。例如:
图像名称:myapp
标签: 1.0.1 , 分期 , 最新
现在我想使用版本号标签+环境标签来拉取这个docker镜像。
我已经尝试过:
docker pull 123456789.dkr.ecr.us-west-100.amazonaws.com/myapp:1.0.1:staging
Run Code Online (Sandbox Code Playgroud)
但我收到错误:
参考格式无效
你知道这是否可能吗?
备注:仅使用 1 个标签即可工作。例如:myapp:1.0.1
我正在尝试使用 jenkinsfile 在一个非常简单的 jenkins 作业中运行 docker-compose 构建。
\n我正在使用 scm 的管道来获取源代码,如下所示:
\n屏幕截图\n
我使用的jenkins文件如下:
\nimport jenkins.model.*\njenkins = Jenkins.instance\n\nnode{\n\n stage(\xe2\x80\x98Build\xe2\x80\x99) {\n\n sh \xe2\x80\x98docker-compose -f /var/lib/jenkins/workspace/Docker-compose-test/heb_acceptance_test/docker-compose.yml up --build\xe2\x80\x99 \n }\n\n}\n
Run Code Online (Sandbox Code Playgroud)\n但构建一直失败。这是失败日志
\n> git checkout -f d4d004337dc5ffa2bdcfb21e4c0d93c468289311\nCommit message: "just trying syntax"\n > git rev-list --no-walk d4d004337dc5ffa2bdcfb21e4c0d93c468289311 # timeout=10\nRunning in Durability level: MAX_SURVIVABILITY\n[Pipeline] node\n[Pipeline] End of Pipeline\nan exception which occurred:\n in field groovy.lang.Closure.delegate\n in object org.jenkinsci.plugins.workflow.cps.CpsClosure2@64757627\n in field org.jenkinsci.plugins.workflow.cps.CpsThreadGroup.closures\n in object org.jenkinsci.plugins.workflow.cps.CpsThreadGroup@357f33e2\n in object org.jenkinsci.plugins.workflow.cps.CpsThreadGroup@357f33e2\nCaused: java.io.NotSerializableException: hudson.model.Hudson\n at org.jboss.marshalling.river.RiverMarshaller.doWriteObject(RiverMarshaller.java:860)\n …
Run Code Online (Sandbox Code Playgroud) 我有一个 docker-compose.yml 文件,它从 docker hub 获取图像 svka4019/notes2:latest。但是,如果我更改镜像构建并推送它,当我运行 docker-compose 时,它只会使用它之前已经下载的镜像。这是 docker-compose.yml:
springboot-docker-compose-app-container:
image: svka4019/notes2:latest
ports:
- "80:5001"
depends_on:
- friendservice
networks:
- mynet
container_name: base_notes
friendservice:
build: ./Pirmas
command: python app.py
ports:
- 5000:5000
container_name: friend
networks:
- mynet
networks:
mynet:
Run Code Online (Sandbox Code Playgroud)
以及我用于构建和运行的命令:docker-compose up --build -d
. 为了更新 docker-hub 中的图像,我使用:
docker build -t svka4019/notes2
docker push svka4019/notes2
Run Code Online (Sandbox Code Playgroud)
如果我使用无缓存的方法,它只会重建friendService 容器并跳过基本容器。
我是新手,Ansible
并尝试作为安装Vivaldi
. 我在一个角色中的唯一任务Vivaldi update
始于
- name: Run apt upgrade
apt:
upgrade: "yes"
update_cache: yes
cache_valid_time: 432000
- name: Add Vivaldi Repository
apt_repository:
repo: "deb https://repo.vivaldi.com/stable/deb/ stable main"
state: present
filename: vivaldi.list
update_cache: true
tags:
- vivaldi
Run Code Online (Sandbox Code Playgroud)
有了这个,我在 debian 10 安装的本地主机上失败了
Linux london 4.19.0-12-amd64 #1 SMP Debian 4.19.152-1 (2020-10-18) x86_64 GNU/Linux).
所有命令都在命令行上成功。
Ansible 是 2.9.15。
第一个任务运行正常(如果单独运行)但第二个任务失败
FAILED! => {"changed": false, "msg": "apt cache update failed"}.
添加存储库密钥的任务失败并显示
FAILED! => {"changed": false, "id": "6D3789EDC3401E12", "msg": "key does not …
我已经搜索了很多,以找到Web服务中使用的BindingProvider的具体解释,但我可以获得完整的信息.
我还阅读了官方文档,但我仍然对BindingProvider背后的概念感到困惑.官方文件说
4.2 javax.xml.ws.BindingProvider
BindingProvider接口表示一个组件,它提供供客户端使用的协议绑定,它由代理实现,并由Dispatch接口扩展.
在docs中,Protocol Binding是什么意思?
你们可以借助简单的代码帮助我理解什么是BindingProvider及其目的.
我正在尝试application.yaml
在 go 应用程序中有文件,其中包含${RMQ_HOST}
我想用环境变量覆盖的值。
在application.yaml
我有:
rmq:
test:
host: ${RMQ_HOST}
port: ${RMQ_PORT}
Run Code Online (Sandbox Code Playgroud)
在我的装载机中,我有:
log.Println("Loading config...")
viper.SetConfigName("application")
viper.SetConfigType("yaml")
viper.AddConfigPath(".")
viper.AutomaticEnv()
err := viper.ReadInConfig()
Run Code Online (Sandbox Code Playgroud)
我${RMQ_HOST}
遇到的问题是不会被我在环境变量中设置的值替换,并尝试使用此字符串连接到 RabbitMQ
amqp://test:test@${RMQ_HOST}:${RMQ_PORT}/test
代替
amqp://test:test@test:test/test
我目前构建我的图像并使用提交哈希标记它们。然后我拉出这个图像并运行它(通过提交哈希或latest
标签)。如何从正在运行的容器中找出提交哈希?
我目前只知道 container hostname
。因此,如果容器正在运行,我可以获得摘要:
docker inspect --format='{{.Config.Image}}' hostname
Run Code Online (Sandbox Code Playgroud)
然后从摘要中我可以在 Dockerhub 上搜索以找到链接到摘要的标签(不知道如何做),然后标签具有链接到它的提交哈希。
不幸的是,如果容器不是仍处于活动状态,我会收到错误消息:
Error: No such object: hostname
Run Code Online (Sandbox Code Playgroud)
有没有其他方法可以做到这一点?
我对 ansible (v2.3) 的 docker_container 模块有疑问。当我尝试传递env_file
剧本中的属性时,出现错误:no such file or directory
---
- hosts: preprod-api
become: yes
gather_facts: true
tasks:
- name: test configuration
docker_container:
name: "backend"
image: "backend"
state: started
exposed_ports:
- 80
volumes:
- /opt/application/i99/current/logs
user: ansible
env_file:
- "/opt/application/i99/current/backend/backend-PreProd-config.list"
Run Code Online (Sandbox Code Playgroud)
我尝试使用 ansible 服务器上存在的一个文件和目标服务器上存在的一个文件,得到相同的结果。
这是错误:
`fatal: [my_hostname]: FAILED! => {"changed": false, "failed": true, "module_stderr": "Shared connection to my_hostname closed.\r\n",
"module_stdout": "Traceback (most recent call last):
File \"/tmp/ansible_rySqS2/ansible_module_docker_container.py\",
line 2036, in <module> main() File \"/tmp/ansible_rySqS2/ansible_module_docker_container.py\",
line 2029, in …
Run Code Online (Sandbox Code Playgroud) Jenkins 不想在代理 docker args 部分中使用任何变量,除了主要的 Jenkins 变量,例如JENKINS_URL
.
容器化 Jenkins 2.152。尝试使用变量使用自定义参数启动 docker 代理。尝试使用 Groove var, environment var like env.Var
, environment var like ${Var}
。所有这些都被用作名称,而不是它们的值。
詹金斯档案
Gpath = "/var/log:/opt/gpath"
pipeline {
agent {
docker {
image "bash:latest"
args '--network proxy_nw -v Gpath -v ${Ppath} -v env.Ppath2 -v /var/log:/${NODE_LABELS}'
}
}
environment {
Ppath = "/var/log:/opt/ppath"
Ppath2 = "/var/log:/opt/ppath2"
}
stages {
stage ('main') {
steps {
script {
sh 'echo "Ppath= " ${Ppath} "; Ppath2= " ${Ppath2} "; NODE_LABELS= …
Run Code Online (Sandbox Code Playgroud) docker ×4
ansible ×2
git ×2
jenkins ×2
amazon-ec2 ×1
containers ×1
debian ×1
docker-swarm ×1
dockerhub ×1
go ×1
hard-drive ×1
image ×1
java ×1
jax-ws ×1
linux ×1
viper-go ×1
web-services ×1