ael*_*aly 1 amazon-web-services amazon-ecs docker
我有一个如下所示的任务定义:
> aws ecs describe-task-definition --task-definition ruby-on-rails-test
{
"taskDefinition": {
"status": "ACTIVE",
"networkMode": "bridge",
"family": "ruby-on-rails-test",
"placementConstraints": [],
"requiresAttributes": [
{
"name": "com.amazonaws.ecs.capability.ecr-auth"
},
{
"name": "com.amazonaws.ecs.capability.docker-remote-api.1.21"
}
],
"volumes": [
{
"host": {
"sourcePath": "/opt/cf/rails-app/public/"
},
"name": "ruby-on-rails-public-volume"
}
],
"taskDefinitionArn": "arn:aws:ecs:us-east-1:accountId:task-definition/ruby-on-rails-test:5",
"containerDefinitions": [
{
"memoryReservation": 1024,
"environment": [
{
"name": "DATABASE_HOSTNAME",
"value": "hostname"
},
{
"name": "PUMA_WORKERS",
"value": "2"
},
{
"name": "RAILS_ENV",
"value": "staging"
},
{
"name": "DATABASE_NAME",
"value": "ruby-on-rails"
},
{
"name": "DEBIAN_FRONTEND",
"value": "noninteractive"
},
{
"name": "PORT",
"value": "8080"
},
{
"name": "LANG",
"value": "en_US.UTF-8"
},
{
"name": "DATABASE_PASSWORD",
"value": "cf"
},
{
"name": "DATABASE_USER",
"value": "cf"
},
{
"name": "PUMA_MAX_THREADS",
"value": "6"
}
],
"name": "ruby-on-rails-test",
"mountPoints": [
{
"sourceVolume": "ruby-on-rails-public-volume",
"containerPath": "/opt/cf/rails-app/public/"
}
],
"image": "accountId.dkr.ecr.us-east-1.amazonaws.com/cf/rails:latest",
"cpu": 1024,
"portMappings": [
{
"protocol": "tcp",
"containerPort": 8080,
"hostPort": 8080
}
],
"command": [
"puma",
"-C",
"config/puma.rb"
],
"essential": true,
"volumesFrom": []
}
],
"revision": 5
}
}
Run Code Online (Sandbox Code Playgroud)
容器启动时,未设置环境变量。我从 ecs 容器机器运行以下命令,从一个无法启动的容器
[root@ip-ip docker]# docker run --name 46485594ffc4 accountId.dkr.ecr.us-east-1.amazonaws.com/ cf/rails:latest env
PATH=/usr/local/bundle/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
HOSTNAME=0e0656e4e84c
RUBY_MAJOR=2.3
RUBY_VERSION=2.3.4
RUBY_DOWNLOAD_SHA256=341cd9032e9fd17c452ed8562a8d43f7e45bfe05e411d0d7d627751dd82c578c
RUBYGEMS_VERSION=2.6.12
BUNDLER_VERSION=1.15.0
GEM_HOME=/usr/local/bundle
BUNDLE_PATH=/usr/local/bundle
BUNDLE_BIN=/usr/local/bundle/bin
BUNDLE_SILENCE_ROOT_WARNING=1
BUNDLE_APP_CONFIG=/usr/local/bundle
APP_HOME=/opt/cf/rails-app
HOME=/root
Run Code Online (Sandbox Code Playgroud)
知道为什么没有设置变量吗?
提前致谢。
当您docker run自己制作映像时,您会错过 AWS 为运行容器所做的全部工作。它仅在其docker run.
你做:
docker run --name 46485594ffc4 accountId.dkr.ecr.us-east-1.amazonaws.com/cf/rails:latest env
在那里,您对配置的任务一无所知。您只有已推送的图像。
因此,要从停止的容器中检查环境变量,您应该首先找到它:
docker ps -a
Run Code Online (Sandbox Code Playgroud)
然后使用容器 ID,执行以下操作:
docker inspect ID
Run Code Online (Sandbox Code Playgroud)
在那里你应该看到环境变量。
PS:要查看该容器会发生什么,请检查其日志: docker logs ID
| 归档时间: |
|
| 查看次数: |
1819 次 |
| 最近记录: |