通过cf成功推送我的应用程序后,我通常需要手动ssh-log进入容器并执行几个PHP脚本来清除和预热我的缓存,可能会执行一些数据库架构更新等.
今天我发现了Cloudfoundry Tasks,它似乎提供了一种很好的方式来完成这类事情,我想测试它是否可以将它集成到我的构建和部署脚本中.
所以使用cf登录,成功连接到正确的组织和空间,app已被推送并且正在运行,我尝试了这个命令:
cf run-task MYAPP "bin/console doctrine:schema:update --dump-sql --env=prod" --name dumpsql
(尝试了几个文件夹更改,如app/bin/console等)
这是输出:
Creating task for app MYAPP in org MYORG / space MYSPACE as me@myemail...
Unexpected Response
Response Code: 404
FAILED
使用CF CLI:6.32.0
cf logs ArcticTenTestBackend --recent 没有输出任何东西(这可能是这种情况,因为我已经启用了一个ELK实例进行日志记录 - 因为我想服务连接到ELK查找日志我发现服务连接器cf插件已经消失了我将会开一张新票).
我推了一个本地Docker镜像
docker push bspartifact.artifactory.example.com/bspartifact:1.0
Run Code Online (Sandbox Code Playgroud)
到我的私人Docker中心.我现在如何将该映像部署到Cloud Foundry?通过用户名和密码进行基本身份验证来保护repo.谢谢.
编辑:
尝试使用--docker-username标志会导致以下错误:
Staging...
Staging process started ...
Failed to talk to docker registry: Get https://bspartifact.artifactory.example.com/v2/: dial tcp 10.xx.xxx.xxx:443: getsockopt: connection refused
Failed to talk to docker registry: Get http://bspartifact.artifactory.example.com/v2/: dial tcp 10.xx.xxx.xxx:80: getsockopt: connection refused
Run Code Online (Sandbox Code Playgroud) 我有一个只需要最多的SpringBoot应用程序.284 MB内存.但我只能以最大值启动应用程序.768 MB内存.即使我稍后减少内存,我总是会收到以下错误:
[APP/PROC/WEB/0] ERR Cannot calculate JVM memory configuration: There is insufficient memory remaining for heap. Memory limit 384M is
less than allocated memory 672509K (-XX:ReservedCodeCacheSize=240M, -XX:MaxDirectMemorySize=10M, -XX:MaxMetaspaceSize=109309K, -Xss1M * 300 threads)
Run Code Online (Sandbox Code Playgroud)
我已经在cf中使用相同的应用程序没有这个问题.cf中有什么变化?在2或3周之前,它仍然有效.
提前感谢您的快速回答!
将Swisscom CloudFoundry解决方案与Spring Boot应用程序一起使用时,Strict-Transport-Security会在HTTPS响应中添加两个标头.我已经研究过这个问题,并发现CloudFoundry解决方案添加了几个标题.默认情况下,Spring Boot也已添加Strict-Transport-Security标头(在安全站点上),这会导致两个不同的HSTS标头.
我想在我的应用程序中配置我的应用程序的标头.有没有办法禁用Swisscom CloudFoundry解决方案的自动标题添加?
如果没有,有没有办法告诉Swisscom Cloud覆盖现有的Strict-Transport-Security标题而不是将其附加到标题列表?
部署Swisscom Cloud的Spring Boot应用程序的HTTP响应包含以下两个标头:
Strict-Transport-Security:max-age=31536000 ; includeSubDomains
Strict-Transport-Security:max-age=15768000; includeSubDomains
Run Code Online (Sandbox Code Playgroud) http-headers cloud-foundry hsts swisscomdev strict-transport-security
如果您希望将S3与流行的Cyberduck应用程序一起使用,则必须使用来自Swisscom Application Cloud的自定义连接配置文件.您可以在此处找到此配置文件以供下载
使用签名版本AWS2进行身份验证需要使用AWS2 Riak云存储EMC Elastic Cloud Storage的已知提供程序的不完整列表
我已将我的应用程序(PHP Buildpack)部署到生产环境中cf push app-name。之后,我致力于进一步的功能和错误修正。现在我想将我的本地更改推送到生产中。但是当我这样做时,保存在生产服务器上的所有图像(例如个人资料图像)都会随着每次推送而丢失。
如何仅接管代码中的更改而不丢失生产服务器上的任何存储文件?
它应该像一个“ git pull”
在使用Swisscom的myCloud Web客户端查看流量时,承载令牌用于客户端和服务器之间的所有交互(storage.prod.mdl.swisscom.ch):
Authorization: Bearer 5E9Ra2n2kwI7JZDoy1f7og==
Run Code Online (Sandbox Code Playgroud)
(显然这个标记是假的).
如何使用Swisscom Passeport登录名和密码获取此类不记名令牌?使用示例curl是优选的.
另外,有没有关于myCloud API的文档?
我正在向使用MariaDB服务的Swisscom AppCloud部署一些spring-boot应用程序.使用CloudFoundry连接器在我的应用程序中自动配置该服务,连接正常.
但是:由于我在我的Java代码中大量使用ZonedDateTime-Objects,我也包含在pom.xml中...
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-java8</artifactId>
</dependency>
Run Code Online (Sandbox Code Playgroud)
...正确保存数据库中的ZonedDateTimes.
当我添加时,这在我的本地MariaDB上工作正常
...?useLegacyDatetimeCode=false
Run Code Online (Sandbox Code Playgroud)
...到连接字符串(如下所述:https://moelholm.com/2016/11/09/spring-boot-controlling-timezones-with-hibernate/ - >"BONUS提示:让Hibernate配置工作与MariaDB/MySQL").
如何将此标志(也可能是其他标志)添加到Swisscom AppCloud上与MariaDB服务的连接?
我们想在我们的前端添加一个维护页面,该页面应该在后端当前不可用时出现(例如停止或部署).当应用程序未运行时,将显示以下消息以及404状态代码:
404 Not Found: Requested route ('name.scapp.io') does not exist.
Run Code Online (Sandbox Code Playgroud)
此外,当应用程序停止时(仅此时),存在标题:
X-Cf-Routererror: unknown_route
Run Code Online (Sandbox Code Playgroud)
如果应用程序未运行,是否可靠地添加此标头?如果是这种情况,我可以使用此标志显示维护页面.
顺便说一句:5xx如果应用程序没有启动/崩溃,提供状态代码会不会更有意义,即停止的应用程序和错误的请求路由之间有什么不同?捕获503错误会更容易,因为它不会干扰我们的业务逻辑(404在应用程序内部使用).
我使用静态构建包将 React 应用程序部署到 Cloud Foundry。目标是使应用程序可以在domain.com/路径下访问。所以我根据他的博客文章配置了路线: https: //www.cloudfoundry.org/context-path-routing/
另外,我pushstate: enabled在静态文件中进行了设置,并将上下文路径添加到静态资源 URLS 中;例如,样式表的 URL 是domain.com/path/static/style.css。当我访问domain.com/path 时,我得到了index.html 文件。但是,找不到 index.html 文件中链接的静态资源,而是找到了索引文件。如果在服务器上找不到资源,这是推送状态路由的默认行为。
为了pushstate: enabled在“子目录”中运行应用程序,我还需要配置什么吗?
swisscomdev ×10
spring-boot ×2
api ×1
artifactory ×1
curl ×1
cyberduck ×1
docker ×1
dockerhub ×1
hsts ×1
http-headers ×1
java ×1
mariadb ×1
memory ×1
pushstate ×1
routes ×1