使用打包程序创建映像时,如何从Gitlab中获取代码?

时间:2018-12-18 04:01:09

标签: packer

我正在使用打包程序创建图像。我使用了2个预配置程序,即<script src="https://unpkg.com/vuelidate/dist/validators.min.js"></script> <script src="https://unpkg.com/vuelidate/dist/vuelidate.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script> <!DOCTYPE html> <html> <head> <link href='https://fonts.googleapis.com/css?family=Roboto:100,300,400,500,700,900|Material+Icons' rel="stylesheet"> <link href="https://cdn.jsdelivr.net/npm/vuetify/dist/vuetify.min.css" rel="stylesheet"> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no, minimal-ui"> </head> <body> <div id="app"> <v-app> <v-content> <v-container> <v-data-table :headers="headers" :items="desserts" class="elevation-1"> <template slot="items" slot-scope="props"> <tr @click="openEditDialog(props.item)"> <td>{{ props.item.name }}</td> <td class="text-xs-center">{{ props.item.calories }}</td> <td class="text-xs-center">{{ props.item.fat }}</td> </tr> </template> </v-data-table> </v-container> <v-dialog v-model="editDialog" width="500"> <v-card> <v-card-title class="headline grey lighten-2" primary-title> Set Fat Content </v-card-title> <v-card-text> <v-form> <v-text-field label="Fat" v-model="currentItem.fat" required :error="$v.currentItem.fat.$dirty && $v.currentItem.fat.$error"> </v-text-field> </v-form> </v-card-text> <v-divider></v-divider> <v-card-actions> <v-spacer></v-spacer> <v-btn color="primary" flat @click="validate()"> Save </v-btn> </v-card-actions> </v-card> </v-dialog> </v-content> </v-app> </div> <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script> <script src="https://cdn.jsdelivr.net/npm/vuetify/dist/vuetify.js"></script> </body> </html>Shell,它们都可以正常工作并安装了所有必需的软件包。

但是现在我也需要将应用程序代码也部署到通过Gitlab的映像中​​。 我不知道我们该怎么做。您能帮助我,我们如何从Gitlab提取代码以使用打包程序创建图像?

任何帮助将不胜感激。

谢谢。

1 个答案:

答案 0 :(得分:0)

您应该使用 ssh代理转发

  1. 在运行Packer的主机上加载可以访问git仓库ssh-add <path to private key>的ssh密钥。

  2. 确保打包程序模板中有"ssh_disable_agent_forwarding": false(默认)。参见Docs: Communicator

现在,在打包程序配置脚本中,您应该能够使用git clone git@<GitLab server>:<repo.git>通过SSH克隆存储库。