Comments (16)
This issue is still reproducible and prevents new users from being able to make use of the docker image.
Steps to reproduce:
mytmpdir=$(mktemp -d 2>/dev/null || mktemp -d -t 'devreprogatsby')
cd $mytmpdir
npm i -g gatsby-cli
gatsby new gardner
cd gardner/
cat << EOF > .dockerignore
.cache/
node_modules/
public/
EOF
cat << EOF > Dockerfile
FROM gatsbyjs/gatsby:onbuild as build
FROM gatsbyjs/gatsby
COPY --from=build /app/public /pub
EOF
gatsby build
docker build -t gh-issue-39 .
echo "Be sure to remove the temporary files: "
echo rm -rf $mytmpdir
This results in:
Sending build context to Docker daemon 1.519MB
Step 1/3 : FROM gatsbyjs/gatsby:onbuild as build
# Executing 1 build trigger
ADD failed: stat /var/lib/docker/tmp/docker-builder209143335/public: no such file or directory
from gatsby-docker.
I am pretty sure the problem is that the onbuild tag on docker hub contains the same image like the latest tag, which it should not. It is supposed to contain the result of https://github.com/gatsbyjs/gatsby-docker/blob/master/Dockerfile.onbuild but it does not. Instead both images are a result of https://github.com/gatsbyjs/gatsby-docker/blob/master/Dockerfile which is only supposed to be used for the latest tag.
The issue @shicholas linked (#38) contains the right workarounds for this issue. (Another option is to use the Dockerfile.onbuild from this repo and build it yourself.)
I totally agree with this. My solution was to build the image and host it in docker hub. If someone wants to use it as well, just replace
FROM gatsbyjs/gatsby:onbuild as build
with
FROM masasip/gatsby:onbuild as build
To repleat my steps and host image on your own, create a repo to docker hub and then run locally:
git clone [email protected]:gatsbyjs/gatsby-docker.git
cd gatsby-docker
docker build -t gatsby:onbuild --file Dockerfile.onbuild .
docker login --username=<your-docker-hub-username>
docker tag gatsby:onbuild <your-docker-hub-username>/<your-docker-hub-repo>:onbuild
docker push <your-docker-hub-username>/<your-docker-hub-repo>:onbuild
and replace
FROM gatsbyjs/gatsby:onbuild as build
with
<your-docker-hub-username>/<your-docker-hub-repo>:onbuild
from gatsby-docker.
I solved the problem by doing a custom Dockerfile based on nginx image.
My Dockerfile and my nginx config are in this public gist https://gist.github.com/NogaMan/3ae6bd88e8ae063ab6da56bc36659c7d
The files are working 100%
from gatsby-docker.
I am pretty sure the problem is that the onbuild tag on docker hub contains the same image like the latest tag, which it should not. It is supposed to contain the result of https://github.com/gatsbyjs/gatsby-docker/blob/master/Dockerfile.onbuild but it does not. Instead both images are a result of https://github.com/gatsbyjs/gatsby-docker/blob/master/Dockerfile which is only supposed to be used for the latest tag.
The issue @shicholas linked (#38) contains the right workarounds for this issue. (Another option is to use the Dockerfile.onbuild from this repo and build it yourself.)
from gatsby-docker.
Any news about fixing this bug?
from gatsby-docker.
hmm, I'm not sure what your issue is then. given that this docker image hasn't been updated in a while, I shared a solution (and there are others) on this thread - #38 (comment) hope either solution listed can help
from gatsby-docker.
@NogaMan We noticed that the body of this issue is blank.
Please fill in this field with more information to help the maintainers resolve your issue.
Generated by 🚫 dangerJS
from gatsby-docker.
Did you run yarn build
before docker build
?
from gatsby-docker.
I have the exact same problem.
Already did npm run build
info Done building in 14.082574965 sec
MacBook-Pro-3:fronted dimiandre$ docker build -t telepsycovid/frontend .
Sending build context to Docker daemon 2.417MB
Step 1/3 : FROM gatsbyjs/gatsby:onbuild as build
# Executing 1 build trigger
ADD failed: stat /var/lib/docker/tmp/docker-builder048987704/public: no such file or directory```
from gatsby-docker.
Do check the .dockerignore file too.
from gatsby-docker.
I also have this issue.
from gatsby-docker.
I solved the problem by doing a custom Dockerfile based on nginx image.
My Dockerfile and my nginx config are in this public gist https://gist.github.com/NogaMan/3ae6bd88e8ae063ab6da56bc36659c7dThe files are working 100%
Whn I try this I get
Step 9/9 : COPY docker/vhost.conf /etc/nginx/conf.d/default.conf
COPY failed: stat /var/lib/docker/tmp/docker-builder704808398/docker/vhost.conf: no such file or directory
error Command failed with exit code 1.
Earlier in the build I do get
warning [email protected]: Invalid bin field for "url-loader".
from gatsby-docker.
why are you using gatsby outside of the container? i'm so confuse.
I would have thougt this defeats the whole point of docker.
from gatsby-docker.
@airtonix the use case is to develop locally using the docker container and then deploy the code to production using the docker container. This is a selling point of docker and a common use case. It allows the developer to use specific versions of dependencies on the dev machine that may be incompatible with other projects they are working on.
from gatsby-docker.
Any news about fixing this bug?
And check the .dockerignore
for the public
folder. Worked for me then with this description.
from gatsby-docker.
Any news about fixing this bug?
And check the
.dockerignore
for thepublic
folder. Worked for me then with this description.
Yes it will works for local development but not for the CI/CD environments where you dont have npm installed on the docker hosts.
from gatsby-docker.
Related Issues (20)
- how to use onbuild? HOT 1
- Doesn't actually include Gatsby? HOT 9
- CLI / Dev image HOT 10
- doesn't work under service worker HOT 3
- About cache control HOT 1
- allow overrides in nginx configuration HOT 2
- minor typos HOT 1
- Update images in docker hub HOT 8
- Can we update caching strategy for page-data.json HOT 1
- nginx config generated by nginx-boot.sh does bogus 301 redirects HOT 4
- HTTPS? HOT 4
- ERROR [build 2/1] ADD public/ /pub HOT 3
- Feat: Cache webp images HOT 1
- Allow overrides of client_max_body_size
- Gatsby 4 support HOT 2
- Docker image outdated HOT 1
- Let's use a Map as they're a lot cheaper when arrays get large
- Blockonlinenet HOT 1
- This has no reason to exist at all.
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from gatsby-docker.