Angular 无法访问Gitlab CI角度工件
我正在尝试使用gitlab管道构建和部署我的angular项目。有两份工作。一个用于构建angular应用程序,另一个用于部署。我的Angular 无法访问Gitlab CI角度工件,angular,docker,gitlab,Angular,Docker,Gitlab,我正在尝试使用gitlab管道构建和部署我的angular项目。有两份工作。一个用于构建angular应用程序,另一个用于部署。我的gitlab ci.yml如下所示 image: node:latest cache: key: ${CI_COMMIT_REF_SLUG} paths: - node_modules/ before_script: - npm install > /dev/null stages: - build - deploy build
gitlab ci.yml
如下所示
image: node:latest
cache:
key: ${CI_COMMIT_REF_SLUG}
paths:
- node_modules/
before_script:
- npm install > /dev/null
stages:
- build
- deploy
build:
stage: build
artifacts:
paths:
- dist/
expire_in: 1 week
script:
- npm run build --prod
deploy:
stage: deploy
dependencies:
- build
environment: production
image: mjsarfatti/gitlab-ci-pipeline-php-aws:latest
before_script:
- mkdir ~/.aws/
- touch ~/.aws/credentials
- printf "[eb-cli]\naws_access_key_id = %s\naws_secret_access_key = %s\n" "$AWS_ACCESS_KEY_ID" "$AWS_SECRET_ACCESS_KEY" >> ~/.aws/credentials
script:
- git checkout master
- eb deploy my_project
only:
- master
部署作业中使用的aws cli生成位于我的项目根目录中的dockerfile。我的问题是
每次运行部署作业时,都会出现以下错误:
Step 3/7 : COPY dist/src /usr/share/nginx/html
44 COPY failed: stat /var/lib/docker/tmp/docker-builder648218383/dist/src: no such file or directory.
似乎缺少来自上一个构建作业的工件。我的
gitlab ci.yaml
文件有什么问题?当工件被提取到其他管道步骤中时,它被提取到一个不同的位置,您的代码通过git被拉下来。对我来说,我已经看到了从代码所在的父目录中放入的工件。例如,如果我有这个目录结构:
--- gitlab_ci_root
--- my_code
提取的工件将放在gitlab\u ci\u root
下,而不是my\u code
下
您可以通过在deploy
步骤中放置两个ls
来测试这一点
deploy:
stage: deploy
dependencies:
- build
environment: production
image: mjsarfatti/gitlab-ci-pipeline-php-aws:latest
before_script:
- ls # directory list of current directory, likely your code
- ls ../ # directory list of the parent directory.
- mkdir ~/.aws/
- touch ~/.aws/credentials
- printf "[eb-cli]\naws_access_key_id = %s\naws_secret_access_key = %s\n" "$AWS_ACCESS_KEY_ID" "$AWS_SECRET_ACCESS_KEY" >> ~/.aws/credentials
script:
- git checkout master
- eb deploy my_project
only:
- master
找到要提取的
dist/
目录的位置后,您可以在脚本中将dist移动到需要的任何位置。如何将dist
文件夹添加到缓存路径中,就像使用节点\u模块那样?我不确定它是否有效,但值得一试。我认为这不是这里描述的正确解决方案: