我在参数部分有这个,
Parameters:
PlatformSelect:
Description: Cockpit platform Select.
Type: String
Default: qa-1
AllowedValues: [qa-1, qa-2, staging, production]
Run Code Online (Sandbox Code Playgroud)
我需要在我的 UserData 中引用这个值。我在两者之间使用映射。
Mappings:
bootstrap:
ubuntu:
print: echo ${PlatformSelect} >>test.txt
Resources:
EC2Instance:
Type: AWS::EC2::Instance
Properties:
InstanceType: !Ref ‘InstanceType’
KeyName: !Ref ‘KeyName’
Tags:
- Key: Name
Value: Test
UserData:
Fn::Base64:
Fn::Join:
- ‘’
- - |
#!/bin/bash
- Fn::FindInMap:
- bootstrap
- ubuntu
- print
- |2+
Run Code Online (Sandbox Code Playgroud)
这是行不通的。不确定我引用它的方式是错误的!!
我应该在它之前使用诸如 '${AWS::Parameters:PlatformSelect}' 之类的东西吗?
我的Dockerfile有一个可以在ENTRYPOINT上运行的脚本。计划将容器与我的代码所在的卷安装一起运行,一旦容器通过卷安装启动,它就需要运行几个命令。
但是从运行容器时收到的错误来看,我相信Docker卷安装会在ENTRYPOINT脚本之后进行。
一旦容器启动,我确定可以使用docker exec选项运行命令。但这使运行命令的行数更多。是否有任何解决方法,即使使用docker-compose吗?
Dockerfile的:
FROM my-container
WORKDIR /my-mount-dir
ADD startup-script.sh /root/startup-script.sh
ENTRYPOINT ["/root/startup-script.sh"]
Run Code Online (Sandbox Code Playgroud)
Docker运行:
docker运行-itd -v / home / user / directory:/ my-mount-dir build-container
注意: startup-script.sh包含应该在已安装的目录文件上运行的命令。