我正在尝试根据提交源自的分支为我的 GitLab Runner 设置一个环境变量。
我有 4 个 kubernetes 集群:staging、integration、production 和 qa。本质上,我想根据我推送到的分支将我的应用程序部署到正确的集群。
image: google/cloud-sdk:latest
variables:
DOCKER_HOST: tcp://docker:2375/
DOCKER_DRIVER: overlay2
services:
- docker:dind
before_script:
- docker info
stages:
- publish
publish:
stage: publish
script:
- if [ "$CI_COMMIT_REF_NAME" = "master" ]; then $ENVIRONMENT="production"; else $ENVIRONMENT="$CI_COMMIT_REF_NAME"; fi
- echo $ENVIRONMENT
.
.
.
- kubectl apply -f cfg/${ENVIRONMENT}/web-deployment.yaml
only:
- master
- integration
- qa
- staging
Run Code Online (Sandbox Code Playgroud)
每当我使用不同形式的 if 语句运行脚本时,都会出现以下错误:
/bin/bash: line 83: =integration: command not found
ERROR: Job failed: exit code 1 …
Run Code Online (Sandbox Code Playgroud) 我正在我的组织 gitlab 组中镜像一个流行的 go 库(用于冗余)。
在我的代码中,我有: import ( "gitlab.com/org/group/library.git" )
我使用这个答案来指导如何使用带有私有存储库的 go get。在我的机器上go get ./...
工作是因为我使用以下命令配置了 git:
$ git config --global url.git@gitlab.com:.insteadOf https://gitlab.com/
Run Code Online (Sandbox Code Playgroud)
当我尝试构建 docker 容器时,命令RUN go get ./...
失败并显示以下输出:
package gitlab.com/org/group/library.git: cannot download, git://gitlab.com/org/group/library uses insecure protocol
Run Code Online (Sandbox Code Playgroud)
似乎来自类似线程或本文的流行答案是执行诸如将 ssh 密钥上传到 docker 容器之类的操作。我真的对此感到不舒服,因为我不完全了解正在做什么或安全隐患。
任何有关如何正确配置我的 dockerfile 或我的 golang 工作流程的见解都会有很大帮助。
我建立了一个小型Rails项目,以“实时”显示加密货币价格。每隔30秒,后台作业就会从我构建的另一个api获取价格,数据会保存在db中,并通过操作电缆进行广播。
我最初是在两年前项目开始时问这个问题的,这确实帮助了我前进。我采用的解决方案是resque-scheduler。我已将应用程序部署到Heroku。几天前,我的价格停止更新,我不知道为什么。我的日志中没有明显的变化。我尚未升级任何软件包。
require 'resque/tasks'
require 'resque/scheduler/tasks'
# Scheduler needs very little cpu, just start it with a worker.
desc "schedule and work, so we only need 1 dyno"
task :schedule_and_work do
if Process.fork
sh "rake environment resque:work"
else
sh "rake resque:scheduler"
Process.wait
end
end
Run Code Online (Sandbox Code Playgroud)
require 'resque/tasks'
require 'resque/scheduler/tasks'
namespace :resque do
task :setup do
require 'resque'
require 'resque/scheduler'
ENV['QUEUE'] = '*'
Resque.redis = 'localhost:6379' unless Rails.env == 'production'
schedule …
Run Code Online (Sandbox Code Playgroud) 我正在尝试开发一个应用程序,但在添加 dotenv 后无法构建它。
在我的app.config.js
我有
import "dotenv/config";
const API_URL = process.env["API_URL"] || "";
const API_VERSION = process.env["API_VERSION"] || "";
const MIRAGE_ENABLED = process.env["MIRAGE_ENABLED"] === "true" ? true : false;
const NODE_ENV = process.env["NODE_ENV"];
export default {
name: "My Application",
version: "0.0.0",
extra: {
API_URL,
API_VERSION,
MIRAGE_ENABLED,
NODE_ENV,
},
};
Run Code Online (Sandbox Code Playgroud)
在我的app.json
我有:
{
"expo": {
"name": "my-application",
"slug": "my-application",
"owner": "my-expo",
"privacy": "unlisted",
"version": "0.0.0",
"orientation": "landscape",
"icon": "./assets/images/icon.png",
"sdkVersion": "37.0.0",
"platforms": ["ios"],
"splash": {
"image": "./assets/images/splash.png",
"resizeMode": "contain", …
Run Code Online (Sandbox Code Playgroud) 我想知道以下场景的最佳实践是什么:我有一个应用程序,其中代理代表客户进行身份验证。
如果客户被禁止,我返回给他们的 http 状态代码的最佳做法是什么?
当我返回 403 时,他们发出的请求似乎无效,它不会向代理传达用户被禁止的信息。同样的道理,我不想发送 401,除非用于发出请求的凭据无效。
我已经阅读了一些答案和规范,但没有找到我想要的东西。我倾向于自定义 2XX 响应,即 (230) 或 406 或 451 之类的内容。
期待您的意见。
使用的资源:
我正在帮助为使用expo开发的 React-Native 应用程序建立 gitlab ci 管道。这是我的gitlab-ci.yml
:
image: node/apline\ncache:\n key: ${CI_COMMIT_REF_SLUG}\n paths:\n - ~/.npm\n\nstages:\n - deploy\n - tag\nbefore_script:\n - echo $CI_BUILD_REF\n - echo $CI_PROJECT_DIR\n - apk add --no-cache bash build-base gcc git python3 curl\n - PATCH=`git log --pretty=oneline | wc -l | sed -e \'s/^[[:space:]]*//\'`\n - VERSION=`cat VERSION`\n - VERSION=${VERSION%?}\n - TAG="${VERSION}${PATCH}"\n - echo "Build version = ${TAG}"\n\nexpo-build:\n stage: deploy\n artifacts:\n paths:\n - ipas/\n script:\n - sed -i "s/0.0.0/${TAG}/g" app.json\n - npm ci --production --cache .npm --prefer-offline\n …
Run Code Online (Sandbox Code Playgroud)